Dodam repozytorium Joda Time do SBT z
libraryDependencies ++= Seq(
"joda-time" % "joda-time" % "2.1"
)
Wtedy wesoło używam tego w ten sposób:
val ymd = org.joda.time.format.DateTimeFormat.forPattern("yyyyMMdd")
ymd.parseDateTime("20121212")
Ale kiedy kompiluję projekt w SBT, otrzymuję paskudny:
[warn] Class org.joda.convert.FromString not found - continuing with a stub.
[warn] Caught: java.lang.NullPointerException while parsing annotations in /home/jack/.ivy2/cache/joda-time/joda-time/jars/joda-time-2.1.jar(org/joda/time/DateTime.class)
[error] error while loading DateTime, class file '/home/jack/.ivy2/cache/joda-time/joda-time/jars/joda-time-2.1.jar(org/joda/time/DateTime.class)' is broken
[error] (class java.lang.RuntimeException/bad constant pool tag 10 at byte 42)
Wypróbowałem wersję 2.0 joda-time, ale pojawia się ten sam błąd.
"joda-time" % "joda-time" % "2.1"
i"org.joda" % "joda-convert" % "1.2"
joda-convert
tego toString dla Datetime jestyyyy-mm-ddThh-mm-ss
. Stworzyłem prosty projekt zjodatime
ijoda-convert
zależnościami, więc w nim mamyyyy-mm-ddThh-mm-ss.000Z
.a.jar
która zawiera@B class A
, skąd@B
pochodzi adnotacjab.jar
. W Javie można używaćA
w kodzie, jeśli masza.jar
nieb.jar
na ścieżce kompilacji; w Scali nie możesz.Miałem podobny problem:
[warn] Class net.jcip.annotations.NotThreadSafe not found - continuing with a stub. [warn] Caught: java.lang.NullPointerException while parsing annotations in ~/.ivy2-p2/cache/org.opensaml/xmltooling/jars/xmltooling-1.3.4.jar(org/opensaml/xml/util/IDIndex.class) [error] error while loading AttributeMap, class file '~/.ivy2-p2/cache/org.opensaml/xmltooling/jars/xmltooling-1.3.4.jar(org/opensaml/xml/util/AttributeMap.class)' is broken [error] (class java.lang.RuntimeException/bad constant pool index: 0 at pos: 12058)
Jawne dodanie zależności
jcip-annotations-1.0.jar
rozwiązało problem.źródło