How to build Jacoco? ("Validation Scala" project fails to build)

16 views
Skip to first unread message

Wolfgang

unread,
Sep 28, 2025, 6:10:52 AM (yesterday) Sep 28
to JaCoCo and EclEmma Users
I try to build Jacoco in order to check how the "report-aggregate" sample works.

Thus I downloaded todays source zip and run the build with the command "mvn clean install". My environment: Windows 11, Java 17.0.16, Maven 3.9.11.

The build fails here:

[INFO] ----------< org.jacoco:org.jacoco.core.test.validation.scala >----------
[INFO] Building JaCoCo :: Test :: Core :: Validation Scala 0.8.14-SNAPSHOT [18/28]
[INFO]   from org.jacoco.core.test.validation.scala\pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- clean:3.5.0:clean (default-clean) @ org.jacoco.core.test.validation.scala ---
[INFO] Deleting C:\Temp\github\jacoco-master\org.jacoco.core.test.validation.scala\target
[INFO]
[INFO] --- enforcer:3.6.1:enforce (enforce) @ org.jacoco.core.test.validation.scala ---
[INFO] Rule 2: org.apache.maven.enforcer.rules.RequireNoRepositories passed
[INFO] Rule 3: org.apache.maven.enforcer.rules.dependency.RequireReleaseDeps passed
[INFO]
[INFO] --- antrun:3.1.0:run (check-license-header) @ org.jacoco.core.test.validation.scala ---
[INFO] Executing tasks
[INFO] Executed tasks
[INFO]
[INFO] --- build-helper:3.6.1:parse-version (parse-version) @ org.jacoco.core.test.validation.scala ---
[INFO]
[INFO] --- buildnumber:3.2.1:create (default) @ org.jacoco.core.test.validation.scala ---
[INFO]
[INFO] --- bsh:1.4:run (parse-version) @ org.jacoco.core.test.validation.scala ---
[INFO] Executing Script
[INFO] file class java.lang.Object
[INFO] script class java.lang.String
[INFO] evaluating script major = project.getProperties().get("parsedVersion.majorVersion"); [+ 27 omitted line(s)]
[INFO]
[INFO] --- jacoco:0.8.14-SNAPSHOT:prepare-agent (default) @ org.jacoco.core.test.validation.scala ---
[INFO] Skipping JaCoCo execution because property jacoco.skip is set.
[INFO]
[INFO] --- scala:4.4.0:compile (compile) @ org.jacoco.core.test.validation.scala ---
[INFO] Using incremental compilation using Mixed compile order
[INFO] Compiler bridge file: C:\Users\knuffi\.sbt\1.0\zinc\org.scala-sbt\org.scala-sbt-compiler-bridge_2.13-1.3.5-bin_2.13.12__61.0-1.3.5_20200330T000931.jar
[INFO] Compiling 3 Scala sources and 3 Java sources to C:\Temp\github\jacoco-master\org.jacoco.core.test.validation.scala\target\classes ...
[WARNING] Unexpected javac output: warning: [options] bootstrap class path not set in conjunction with -source 7
warning: [options] source value 7 is obsolete and will be removed in a future release
warning: [options] target value 7 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
4 warnings.
[ERROR] ## Exception when compiling 6 sources to C:\Temp\github\jacoco-master\org.jacoco.core.test.validation.scala\target\classes
java.lang.NoSuchMethodError: 'java.io.OutputStream org.fusesource.jansi.AnsiConsole.wrapOutputStream(java.io.OutputStream)'
jline.AnsiWindowsTerminal.detectAnsiSupport(AnsiWindowsTerminal.java:57)
jline.AnsiWindowsTerminal.<init>(AnsiWindowsTerminal.java:27)
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
java.base/java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
java.base/jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:347)
java.base/java.lang.Class.newInstance(Class.java:645)
jline.TerminalFactory.getFlavor(TerminalFactory.java:205)
jline.TerminalFactory.create(TerminalFactory.java:96)
jline.TerminalFactory.get(TerminalFactory.java:180)
jline.TerminalFactory.get(TerminalFactory.java:186)
sbt.internal.util.ConsoleAppender$.ansiSupported(ConsoleAppender.scala:292)
sbt.internal.util.ConsoleAppender$.useColorDefault$1(ConsoleAppender.scala:127)
sbt.internal.util.ConsoleAppender$.$anonfun$formatEnabledInEnv$4(ConsoleAppender.scala:143)
scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.java:23)
scala.Option.getOrElse(Option.scala:189)
sbt.internal.util.ConsoleAppender$.<init>(ConsoleAppender.scala:143)
sbt.internal.util.ConsoleAppender$.<clinit>(ConsoleAppender.scala)
sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:150)
sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:343)
sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:343)
sbt.internal.inc.Incremental$.doCompile(Incremental.scala:120)
sbt.internal.inc.Incremental$.$anonfun$compile$4(Incremental.scala:100)
sbt.internal.inc.IncrementalCommon.recompileClasses(IncrementalCommon.scala:180)
sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:98)
sbt.internal.inc.Incremental$.$anonfun$compile$3(Incremental.scala:102)
sbt.internal.inc.Incremental$.manageClassfiles(Incremental.scala:155)
sbt.internal.inc.Incremental$.compile(Incremental.scala:92)
sbt.internal.inc.IncrementalCompile$.apply(Compile.scala:75)
sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:348)
sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:301)
sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:168)
sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:248)
sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:74)
sbt_inc.SbtIncrementalCompiler.compile(SbtIncrementalCompiler.java:172)
scala_maven.ScalaCompilerSupport.incrementalCompile(ScalaCompilerSupport.java:291)
scala_maven.ScalaCompilerSupport.compile(ScalaCompilerSupport.java:110)
scala_maven.ScalaCompilerSupport.doExecute(ScalaCompilerSupport.java:92)
scala_maven.ScalaMojoSupport.execute(ScalaMojoSupport.java:557)
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:126)
org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2(MojoExecutor.java:328)
org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:316)
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:174)
org.apache.maven.lifecycle.internal.MojoExecutor.access$000(MojoExecutor.java:75)
org.apache.maven.lifecycle.internal.MojoExecutor$1.run(MojoExecutor.java:162)
org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute(DefaultMojosExecutionStrategy.java:39)
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:159)
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:105)
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:73)
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:53)
org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:118)
org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:261)
org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:173)
org.apache.maven.DefaultMaven.execute(DefaultMaven.java:101)
org.apache.maven.cli.MavenCli.execute(MavenCli.java:906)
org.apache.maven.cli.MavenCli.doMain(MavenCli.java:283)
org.apache.maven.cli.MavenCli.main(MavenCli.java:206)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.base/java.lang.reflect.Method.invoke(Method.java:568)
org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:255)
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:201)
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:361)
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:314)



Is this something that is worth a bug report?

Best regards

Wolfgang

Marc Hoffmann

unread,
Sep 28, 2025, 11:51:49 AM (yesterday) Sep 28
to jac...@googlegroups.com
Hi Wolfgang,

I cannot explain the specific failure you see. But with Java 17 we use the following command line arguments:

mvn clean verify -Djdk.version=17 -Dbytecode.version=17


Best regards,
-marc



--
You received this message because you are subscribed to the Google Groups "JaCoCo and EclEmma Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jacoco+un...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/jacoco/9137b57b-3427-44ec-ab39-0630761d3b35n%40googlegroups.com.

Evgeny Mandrikov

unread,
Sep 28, 2025, 5:49:01 PM (23 hours ago) Sep 28
to JaCoCo and EclEmma Users
JaCoCo is maintained by a very small group of volunteers
and AFAIK none of them is using Windows
unfortunately in our CI on Windows org.jacoco.core.test.validation.scala module is also excluded from build

Your problem according to the stacktrace seems to originate from scala-maven-plugin
And seems that upgrade of it helps - https://github.com/jacoco/jacoco/pull/1957

So you can either
try to build from the above PR/branch
or apply the same upgrade in your working copy
or exclude module org.jacoco.core.test.validation.scala from build
mvnw clean package -pl '!org.jacoco.core.test.validation.scala'


Regards,
Evgeny

Wolfgang

unread,
5:20 AM (12 hours ago) 5:20 AM
to JaCoCo and EclEmma Users
Thanks, I can confirm that it works now.

Many thanks for the fast help!

Best regards

Wolfgang
Reply all
Reply to author
Forward
0 new messages