Ich füge das Joda Time-Repository zu SBT mit hinzu
libraryDependencies ++= Seq(
"joda-time" % "joda-time" % "2.1"
)
Dann benutze ich es fröhlich so:
val ymd = org.joda.time.format.DateTimeFormat.forPattern("yyyyMMdd")
ymd.parseDateTime("20121212")
Aber wenn ich das Projekt in SBT kompiliere, bekomme ich eine böse:
[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)
Ich habe die 2.0-Version von joda-time ausprobiert, erhalte aber den gleichen Fehler.
"joda-time" % "joda-time" % "2.1"
und"org.joda" % "joda-convert" % "1.2"
joda-convert
dies ist String für Datetimeyyyy-mm-ddThh-mm-ss
. Ich habe ein einfaches Projekt mitjodatime
undjoda-convert
Abhängigkeiten erstellt, also habe ich darinyyyy-mm-ddThh-mm-ss.000Z
.a.jar
die a enthält@B class A
, woher die Annotation@B
stammtb.jar
. In Java können SieA
in Ihrem Code verwenden, wenn Siea.jar
ohneb.jar
auf dem Erstellungspfad haben; in Scala kann man nicht.Ich hatte ein ähnliches Problem:
Das explizite Hinzufügen einer Abhängigkeit hat
jcip-annotations-1.0.jar
das Problem behoben.quelle