scala-steward
scala-steward copied to clipboard
java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
Running Scala Steward with the next arguments:
docker run --rm -v $PWD:/opt/scala-steward -i fthomas/scala-steward:0.14.0 --disable-sandbox --do-not-fork --workspace /opt/scala-steward/workspace --repos-file "/opt/scala-steward/repos.md" --git-ask-pass /opt/scala-steward/token.sh --git-author-email "[email protected]" --vcs-type "gitlab" --vcs-login "x-auth-token" --vcs-api-host "https://git.datcon.co.uk/api/v4/"
Results in the following error:
java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter at msw.sbtautoversion.AutoVersion$ProjectWithAutoVersion.computeDependenciesHash(AutoVersion.scala:158) at msw.sbtautoversion.AutoVersion$ProjectWithAutoVersion.generateVersion(AutoVersion.scala:140) at msw.sbtautoversion.AutoVersion$ProjectWithAutoVersion.$anonfun$autoGenerateVersion$2(AutoVersion.scala:84) at scala.Function1.$anonfun$compose$1(Function1.scala:49) at sbt.internal.util.EvaluateSettings$MixedNode.evaluate0(INode.scala:228) at sbt.internal.util.EvaluateSettings$INode.evaluate(INode.scala:170) at sbt.internal.util.EvaluateSettings.$anonfun$submitEvaluate$1(INode.scala:87) at sbt.internal.util.EvaluateSettings.sbt$internal$util$EvaluateSettings$$run0(INode.scala:99) at sbt.internal.util.EvaluateSettings$$anon$3.run(INode.scala:94) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ... 12 more
[error] java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter [error] Use 'last' for the full log. [warn] Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? (default: r)
at org.scalasteward.core.io.process$.$anonfun$slurp$9(process.scala:54)
at org.scalasteward.core.io.process$.$anonfun$slurp$9$adapted(process.scala:50)
at blocking @ org.scalasteward.core.io.FileAlg$$anon$1.ensureExists(FileAlg.scala:100)
at flatMap @ fs2.Compiler$Target.flatMap(Compiler.scala:162)
at flatMap @ fs2.Compiler$Target.flatMap(Compiler.scala:162)
at flatMap @ fs2.Compiler$Target.flatMap(Compiler.scala:162)
at flatMap @ fs2.Compiler$Target.flatMap(Compiler.scala:162)
at flatMap @ fs2.Compiler$Target.flatMap(Compiler.scala:162)
at flatMap @ fs2.Compiler$Target.flatMap(Compiler.scala:162)
at modify @ fs2.internal.Scope.close(Scope.scala:262)
at flatMap @ fs2.Compiler$Target.flatMap(Compiler.scala:162)
at rethrow$extension @ fs2.Compiler$Target.$anonfun$compile$1(Compiler.scala:156)
at flatMap @ fs2.Compiler$Target.flatMap(Compiler.scala:162)
at flatMap @ fs2.Pull$.$anonfun$compile$21(Pull.scala:1156)
at update @ fs2.internal.Scope.releaseChildScope(Scope.scala:224)
at flatMap @ fs2.Compiler$Target.flatMap(Compiler.scala:162)`
2022-04-27 12:12:56,035 INFO ──────────── Total time: Steward microservices.core/object-store-layer:NO-JIRA-update-steward-config-for-0.14.0: 2m 12s 114ms ──────────── 2022-04-27 12:12:56,038 INFO ──────────── Total time: run: 2m 13s 905ms ────────────
Note that although the repo I am updating is using Scala 2.13.6 the Steward tool seems to be using Scala 2.12.15:
2022-04-27 12:12:56,032 ERROR Steward microservices.core/object-store-layer:NO-JIRA-update-steward-config-for-0.14.0 failed java.io.IOException: 'sbt -Dsbt.color=false -Dsbt.log.noformat=true -Dsbt.supershell=false ;+ stewardDependencies;reload plugins;stewardDependencies' exited with code 1 copying runtime jar... [info] [launcher] getting org.scala-sbt sbt 1.6.2 (this may take some time)... [info] [launcher] getting Scala 2.12.15 (for sbt)... [info] welcome to sbt 1.6.2 (Eclipse Adoptium Java 11.0.13) [info] loading global plugins from /root/.sbt/1.0/plugins [info] compiling 1 Scala source to /root/.sbt/1.0/plugins/target/scala-2.12/sbt-1.0/classes ... [info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.15. Compiling... [info] Compilation completed in 12.606s. [info] done compiling
The same repo works if I use Scala Steward version 0.5.0 but I need a higher version so that I can customize the commit message.
Probably not related to steward, but to your classpath. 0.5.0 docker image runs on JDK 8, but newer versions have switched to 11.
Please check there stack overflow questions on how to fix your project classpath for JDK11
- https://stackoverflow.com/questions/42966880/java-lang-noclassdeffounderror-javax-xml-bind-datatypeconverter
- https://stackoverflow.com/questions/43574426/how-to-resolve-java-lang-noclassdeffounderror-javax-xml-bind-jaxbexception/43574427#43574427
Closing since this is an issue with the used JDK version and the repo Scala Steward is working on but not an issue with Scala Steward itself.