validator
validator copied to clipboard
Update plugins and dependencies, migrate to JUnit5 and fix issues
Some weeks ago the branch release/1.5.x has been added. This pull request includes the changes made there. In addition, it updates plugins and dependencies to the most recent versions, it migrates from JUnit4 to JUnit5, and it fixes various issues.
First, the Maven project has been renewed by using a XSLT transformation (RenewPOM.xslt).
A side effect of updating plugins and dependencies is that the Java sources get reformatted by applying the profile "format".
Various compilation warnings have been fixed, some have been suppressed.
After optimizing imports various issues remain. Find inspection reports before and after fixing them attached (InspectionReports.ante.zip and InspectionReports.post.zip).
After each patch, a complete maven build cycle has been performed. Find log files attached (CompilationLogs.zip). All tests (incl. integration tests) succeed.
Okay, I tried to run your branch with a Java 1.8 on a Mac and get this output for mvn clean install (similiar for Java 11):
mvn clean install
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------------< de.kosit:validationtool >-----------------------
[INFO] Building KoSIT XML Prüftool Implementierung 1.5.1
[INFO] from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] Artifact de.kosit.validationtool:packaged-test-scenarios:pom:1.0.2 is present in the local repository, but cached from a remote repository ID that is unavailable in current build context, verifying that is downloadable from [central (https://repo.maven.apache.org/maven2, default, releases)]
[INFO] Artifact de.kosit.validationtool:packaged-test-scenarios:pom:1.0.2 is present in the local repository, but cached from a remote repository ID that is unavailable in current build context, verifying that is downloadable from [central (https://repo.maven.apache.org/maven2, default, releases)]
[WARNING] The POM for de.kosit.validationtool:packaged-test-scenarios:jar:1.0.2 is missing, no dependency information available
[INFO] Artifact de.kosit.validationtool:packaged-test-scenarios:jar:1.0.2 is present in the local repository, but cached from a remote repository ID that is unavailable in current build context, verifying that is downloadable from [central (https://repo.maven.apache.org/maven2, default, releases)]
[INFO] Artifact de.kosit.validationtool:packaged-test-scenarios:jar:1.0.2 is present in the local repository, but cached from a remote repository ID that is unavailable in current build context, verifying that is downloadable from [central (https://repo.maven.apache.org/maven2, default, releases)]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.154 s
[INFO] Finished at: 2025-04-26T21:32:06+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project validationtool: Could not resolve dependencies for project de.kosit:validationtool:jar:1.5.1
[ERROR] dependency: de.kosit.validationtool:packaged-test-scenarios:jar:1.0.2 (test)
[ERROR] de.kosit.validationtool:packaged-test-scenarios:jar:1.0.2 was not found in https://repo.maven.apache.org/maven2 during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of central has elapsed or updates are forced
[ERROR]
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
I assume this is because you commented out
<repositories>
<repository>
<id>project.local</id>
<name>project</name>
<url>file:${project.basedir}/libs</url>
</repository>
</repositories>
After locally commenting it in and compiling with Java 8 I get this error:
mvn clean install
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------------< de.kosit:validationtool >-----------------------
[INFO] Building KoSIT XML Prüftool Implementierung 1.5.1
[INFO] from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- clean:3.2.0:clean (default-clean) @ validationtool ---
[INFO] Deleting /Users/philip/dev/git-thirdparty/validator/target
[INFO]
[INFO] --- enforcer:3.5.0:enforce (enforce-versions) @ validationtool ---
[INFO] Rule 0: org.apache.maven.enforcer.rules.version.RequireMavenVersion passed
[INFO]
[INFO] --- dependency:3.8.1:properties (default) @ validationtool ---
[INFO]
[INFO] --- jacoco:0.8.13:prepare-agent (prepareJacocoSurefireArgLine) @ validationtool ---
[INFO] jacocoSurefire set to -javaagent:/Users/philip/.m2/repository/org/jacoco/org.jacoco.agent/0.8.13/org.jacoco.agent-0.8.13-runtime.jar=destfile=/Users/philip/dev/git-thirdparty/validator/target/jacoco.exec,excludes=**/validationtool/model/**:**/validationtool/cmd/assertions/**
[INFO]
[INFO] --- jaxb:4.0.9:generate (default) @ validationtool ---
[WARNING] Error injecting: org.jvnet.jaxb.maven.XJCMojo
java.lang.TypeNotPresentException: Type org.jvnet.jaxb.maven.XJCMojo not present
at org.eclipse.sisu.space.URLClassSpace.loadClass (URLClassSpace.java:149)
at org.eclipse.sisu.space.NamedClass.load (NamedClass.java:48)
at org.eclipse.sisu.space.AbstractDeferredClass.get (AbstractDeferredClass.java:50)
at com.google.inject.internal.ProviderInternalFactory.provision (ProviderInternalFactory.java:86)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision (InternalFactoryToInitializableAdapter.java:57)
at com.google.inject.internal.ProviderInternalFactory$1.call (ProviderInternalFactory.java:67)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:109)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:124)
at com.google.inject.internal.ProvisionListenerStackCallback.provision (ProvisionListenerStackCallback.java:66)
at com.google.inject.internal.ProviderInternalFactory.circularGet (ProviderInternalFactory.java:62)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.get (InternalFactoryToInitializableAdapter.java:47)
at com.google.inject.internal.InjectorImpl$1.get (InjectorImpl.java:1101)
at org.eclipse.sisu.inject.Guice4$2.get (Guice4.java:235)
at org.eclipse.sisu.inject.LazyBeanEntry.getValue (LazyBeanEntry.java:83)
at org.eclipse.sisu.plexus.LazyPlexusBean.getValue (LazyPlexusBean.java:53)
at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:265)
at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:257)
at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo (DefaultMavenPluginManager.java:491)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:114)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:255)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:361)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)
Caused by: java.lang.UnsupportedClassVersionError: org/jvnet/jaxb/maven/XJCMojo has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1 (Native Method)
at java.lang.ClassLoader.defineClass (ClassLoader.java:756)
at java.security.SecureClassLoader.defineClass (SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass (URLClassLoader.java:473)
at java.net.URLClassLoader.access$100 (URLClassLoader.java:74)
at java.net.URLClassLoader$1.run (URLClassLoader.java:369)
at java.net.URLClassLoader$1.run (URLClassLoader.java:363)
at java.security.AccessController.doPrivileged (Native Method)
at java.net.URLClassLoader.findClass (URLClassLoader.java:362)
at org.codehaus.plexus.classworlds.realm.ClassRealm.findClassInternal (ClassRealm.java:256)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf (ClassRealm.java:351)
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass (SelfFirstStrategy.java:36)
at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass (ClassRealm.java:225)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:210)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:205)
at org.eclipse.sisu.space.URLClassSpace.loadClass (URLClassSpace.java:141)
at org.eclipse.sisu.space.NamedClass.load (NamedClass.java:48)
at org.eclipse.sisu.space.AbstractDeferredClass.get (AbstractDeferredClass.java:50)
at com.google.inject.internal.ProviderInternalFactory.provision (ProviderInternalFactory.java:86)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision (InternalFactoryToInitializableAdapter.java:57)
at com.google.inject.internal.ProviderInternalFactory$1.call (ProviderInternalFactory.java:67)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:109)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:124)
at com.google.inject.internal.ProvisionListenerStackCallback.provision (ProvisionListenerStackCallback.java:66)
at com.google.inject.internal.ProviderInternalFactory.circularGet (ProviderInternalFactory.java:62)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.get (InternalFactoryToInitializableAdapter.java:47)
at com.google.inject.internal.InjectorImpl$1.get (InjectorImpl.java:1101)
at org.eclipse.sisu.inject.Guice4$2.get (Guice4.java:235)
at org.eclipse.sisu.inject.LazyBeanEntry.getValue (LazyBeanEntry.java:83)
at org.eclipse.sisu.plexus.LazyPlexusBean.getValue (LazyPlexusBean.java:53)
at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:265)
at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:257)
at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo (DefaultMavenPluginManager.java:491)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:114)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:255)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:361)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.755 s
[INFO] Finished at: 2025-04-26T21:34:26+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.jvnet.jaxb:jaxb-maven-plugin:4.0.9:generate (default) on project validationtool: Execution default of goal org.jvnet.jaxb:jaxb-maven-plugin:4.0.9:generate failed: Unable to load the mojo 'generate' in the plugin 'org.jvnet.jaxb:jaxb-maven-plugin:4.0.9' due to an API incompatibility: org.codehaus.plexus.component.repository.exception.ComponentLookupException: org/jvnet/jaxb/maven/XJCMojo has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
[ERROR] -----------------------------------------------------
[ERROR] realm = plugin>org.jvnet.jaxb:jaxb-maven-plugin:4.0.9
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/Users/philip/.m2/repository/org/jvnet/jaxb/jaxb-maven-plugin/4.0.9/jaxb-maven-plugin-4.0.9.jar
[ERROR] urls[1] = file:/Users/philip/.m2/repository/org/jvnet/jaxb/jaxb-maven-plugin-core/4.0.9/jaxb-maven-plugin-core-4.0.9.jar
[ERROR] urls[2] = file:/Users/philip/.m2/repository/org/apache/commons/commons-lang3/3.12.0/commons-lang3-3.12.0.jar
[ERROR] urls[3] = file:/Users/philip/.m2/repository/xml-resolver/xml-resolver/1.2/xml-resolver-1.2.jar
[ERROR] urls[4] = file:/Users/philip/.m2/repository/org/glassfish/jaxb/txw2/4.0.5/txw2-4.0.5.jar
[ERROR] urls[5] = file:/Users/philip/.m2/repository/org/codehaus/plexus/plexus-build-api/1.2.0/plexus-build-api-1.2.0.jar
[ERROR] urls[6] = file:/Users/philip/.m2/repository/org/sonatype/plexus/plexus-build-api/0.0.7/plexus-build-api-0.0.7.jar
[ERROR] urls[7] = file:/Users/philip/.m2/repository/org/codehaus/plexus/plexus-sec-dispatcher/2.0/plexus-sec-dispatcher-2.0.jar
[ERROR] urls[8] = file:/Users/philip/.m2/repository/org/codehaus/plexus/plexus-cipher/2.0/plexus-cipher-2.0.jar
[ERROR] urls[9] = file:/Users/philip/.m2/repository/org/apache/maven/maven-builder-support/3.9.6/maven-builder-support-3.9.6.jar
[ERROR] urls[10] = file:/Users/philip/.m2/repository/org/apache/maven/resolver/maven-resolver-named-locks/1.9.18/maven-resolver-named-locks-1.9.18.jar
[ERROR] urls[11] = file:/Users/philip/.m2/repository/org/apache/maven/shared/maven-shared-utils/3.3.4/maven-shared-utils-3.3.4.jar
[ERROR] urls[12] = file:/Users/philip/.m2/repository/org/eclipse/sisu/org.eclipse.sisu.inject/0.9.0.M2/org.eclipse.sisu.inject-0.9.0.M2.jar
[ERROR] urls[13] = file:/Users/philip/.m2/repository/com/google/inject/guice/5.1.0/guice-5.1.0.jar
[ERROR] urls[14] = file:/Users/philip/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar
[ERROR] urls[15] = file:/Users/philip/.m2/repository/com/google/guava/guava/32.0.1-jre/guava-32.0.1-jre.jar
[ERROR] urls[16] = file:/Users/philip/.m2/repository/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar
[ERROR] urls[17] = file:/Users/philip/.m2/repository/org/codehaus/plexus/plexus-component-annotations/2.1.0/plexus-component-annotations-2.1.0.jar
[ERROR] urls[18] = file:/Users/philip/.m2/repository/org/codehaus/plexus/plexus-utils/3.5.1/plexus-utils-3.5.1.jar
[ERROR] urls[19] = file:/Users/philip/.m2/repository/jakarta/xml/bind/jakarta.xml.bind-api/4.0.2/jakarta.xml.bind-api-4.0.2.jar
[ERROR] urls[20] = file:/Users/philip/.m2/repository/jakarta/activation/jakarta.activation-api/2.1.3/jakarta.activation-api-2.1.3.jar
[ERROR] urls[21] = file:/Users/philip/.m2/repository/org/glassfish/jaxb/jaxb-runtime/4.0.5/jaxb-runtime-4.0.5.jar
[ERROR] urls[22] = file:/Users/philip/.m2/repository/org/glassfish/jaxb/jaxb-core/4.0.5/jaxb-core-4.0.5.jar
[ERROR] urls[23] = file:/Users/philip/.m2/repository/com/sun/istack/istack-commons-runtime/4.1.2/istack-commons-runtime-4.1.2.jar
[ERROR] urls[24] = file:/Users/philip/.m2/repository/org/glassfish/jaxb/jaxb-xjc/4.0.5/jaxb-xjc-4.0.5.jar
[ERROR] urls[25] = file:/Users/philip/.m2/repository/org/glassfish/jaxb/xsom/4.0.5/xsom-4.0.5.jar
[ERROR] urls[26] = file:/Users/philip/.m2/repository/com/sun/xml/bind/external/relaxng-datatype/4.0.5/relaxng-datatype-4.0.5.jar
[ERROR] urls[27] = file:/Users/philip/.m2/repository/org/glassfish/jaxb/codemodel/4.0.5/codemodel-4.0.5.jar
[ERROR] urls[28] = file:/Users/philip/.m2/repository/com/sun/xml/bind/external/rngom/4.0.5/rngom-4.0.5.jar
[ERROR] urls[29] = file:/Users/philip/.m2/repository/com/sun/xml/dtd-parser/dtd-parser/1.5.1/dtd-parser-1.5.1.jar
[ERROR] urls[30] = file:/Users/philip/.m2/repository/com/sun/istack/istack-commons-tools/4.1.2/istack-commons-tools-4.1.2.jar
[ERROR] urls[31] = file:/Users/philip/.m2/repository/org/eclipse/angus/angus-activation/2.0.2/angus-activation-2.0.2.jar
[ERROR] urls[32] = file:/Users/philip/.m2/repository/org/apache/maven/plugin-tools/maven-plugin-annotations/3.8.2/maven-plugin-annotations-3.8.2.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import from realm ClassRealm[maven.api, parent: null]]
[ERROR]
[ERROR] -----------------------------------------------------
[ERROR]
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException
As stated above - JAXB 4.0.9 only works with Java 11 and onwards.
After switching to Java 11, I get this error:
mvn clean install
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------------< de.kosit:validationtool >-----------------------
[INFO] Building KoSIT XML Prüftool Implementierung 1.5.1
[INFO] from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- clean:3.2.0:clean (default-clean) @ validationtool ---
[INFO]
[INFO] --- enforcer:3.5.0:enforce (enforce-versions) @ validationtool ---
[INFO] Rule 0: org.apache.maven.enforcer.rules.version.RequireMavenVersion passed
[INFO]
[INFO] --- dependency:3.8.1:properties (default) @ validationtool ---
[INFO]
[INFO] --- jacoco:0.8.13:prepare-agent (prepareJacocoSurefireArgLine) @ validationtool ---
[INFO] jacocoSurefire set to -javaagent:/Users/philip/.m2/repository/org/jacoco/org.jacoco.agent/0.8.13/org.jacoco.agent-0.8.13-runtime.jar=destfile=/Users/philip/dev/git-thirdparty/validator/target/jacoco.exec,excludes=**/validationtool/model/**:**/validationtool/cmd/assertions/**
[INFO]
[INFO] --- jaxb:4.0.9:generate (default) @ validationtool ---
[INFO] Sources are not up-to-date, XJC (version 4.0.5) will be executed.
[INFO]
[INFO] --- formatter:2.26.0:validate (validate) @ validationtool ---
[WARNING] Error injecting: net.revelc.code.formatter.ValidateMojo
java.lang.TypeNotPresentException: Type net.revelc.code.formatter.ValidateMojo not present
at org.eclipse.sisu.space.URLClassSpace.loadClass (URLClassSpace.java:149)
at org.eclipse.sisu.space.NamedClass.load (NamedClass.java:48)
at org.eclipse.sisu.space.AbstractDeferredClass.get (AbstractDeferredClass.java:50)
at com.google.inject.internal.ProviderInternalFactory.provision (ProviderInternalFactory.java:86)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision (InternalFactoryToInitializableAdapter.java:57)
at com.google.inject.internal.ProviderInternalFactory$1.call (ProviderInternalFactory.java:67)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:109)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:124)
at com.google.inject.internal.ProvisionListenerStackCallback.provision (ProvisionListenerStackCallback.java:66)
at com.google.inject.internal.ProviderInternalFactory.circularGet (ProviderInternalFactory.java:62)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.get (InternalFactoryToInitializableAdapter.java:47)
at com.google.inject.internal.InjectorImpl$1.get (InjectorImpl.java:1101)
at org.eclipse.sisu.inject.Guice4$2.get (Guice4.java:235)
at org.eclipse.sisu.inject.LazyBeanEntry.getValue (LazyBeanEntry.java:83)
at org.eclipse.sisu.plexus.LazyPlexusBean.getValue (LazyPlexusBean.java:53)
at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:265)
at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:257)
at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo (DefaultMavenPluginManager.java:491)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:114)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:255)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:361)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)
Caused by: java.lang.UnsupportedClassVersionError: net/revelc/code/formatter/ValidateMojo has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
at java.lang.ClassLoader.defineClass1 (Native Method)
at java.lang.ClassLoader.defineClass (ClassLoader.java:1022)
at java.security.SecureClassLoader.defineClass (SecureClassLoader.java:174)
at java.net.URLClassLoader.defineClass (URLClassLoader.java:555)
at java.net.URLClassLoader$1.run (URLClassLoader.java:458)
at java.net.URLClassLoader$1.run (URLClassLoader.java:452)
at java.security.AccessController.doPrivileged (Native Method)
at java.net.URLClassLoader.findClass (URLClassLoader.java:451)
at org.codehaus.plexus.classworlds.realm.ClassRealm.findClassInternal (ClassRealm.java:256)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf (ClassRealm.java:351)
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass (SelfFirstStrategy.java:36)
at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass (ClassRealm.java:225)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:210)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:205)
at org.eclipse.sisu.space.URLClassSpace.loadClass (URLClassSpace.java:141)
at org.eclipse.sisu.space.NamedClass.load (NamedClass.java:48)
at org.eclipse.sisu.space.AbstractDeferredClass.get (AbstractDeferredClass.java:50)
at com.google.inject.internal.ProviderInternalFactory.provision (ProviderInternalFactory.java:86)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision (InternalFactoryToInitializableAdapter.java:57)
at com.google.inject.internal.ProviderInternalFactory$1.call (ProviderInternalFactory.java:67)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:109)
at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:124)
at com.google.inject.internal.ProvisionListenerStackCallback.provision (ProvisionListenerStackCallback.java:66)
at com.google.inject.internal.ProviderInternalFactory.circularGet (ProviderInternalFactory.java:62)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.get (InternalFactoryToInitializableAdapter.java:47)
at com.google.inject.internal.InjectorImpl$1.get (InjectorImpl.java:1101)
at org.eclipse.sisu.inject.Guice4$2.get (Guice4.java:235)
at org.eclipse.sisu.inject.LazyBeanEntry.getValue (LazyBeanEntry.java:83)
at org.eclipse.sisu.plexus.LazyPlexusBean.getValue (LazyPlexusBean.java:53)
at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:265)
at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:257)
at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo (DefaultMavenPluginManager.java:491)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:114)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:255)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:361)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.556 s
[INFO] Finished at: 2025-04-26T21:36:30+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal net.revelc.code.formatter:formatter-maven-plugin:2.26.0:validate (validate) on project validationtool: Execution validate of goal net.revelc.code.formatter:formatter-maven-plugin:2.26.0:validate failed: Unable to load the mojo 'validate' in the plugin 'net.revelc.code.formatter:formatter-maven-plugin:2.26.0' due to an API incompatibility: org.codehaus.plexus.component.repository.exception.ComponentLookupException: net/revelc/code/formatter/ValidateMojo has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
[ERROR] -----------------------------------------------------
[ERROR] realm = plugin>net.revelc.code.formatter:formatter-maven-plugin:2.26.0
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/Users/philip/.m2/repository/net/revelc/code/formatter/formatter-maven-plugin/2.26.0/formatter-maven-plugin-2.26.0.jar
[ERROR] urls[1] = file:/Users/philip/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.18.3/jackson-core-2.18.3.jar
[ERROR] urls[2] = file:/Users/philip/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.18.3/jackson-databind-2.18.3.jar
[ERROR] urls[3] = file:/Users/philip/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.18.3/jackson-annotations-2.18.3.jar
[ERROR] urls[4] = file:/Users/philip/.m2/repository/com/google/guava/guava/33.4.0-jre/guava-33.4.0-jre.jar
[ERROR] urls[5] = file:/Users/philip/.m2/repository/com/google/guava/failureaccess/1.0.2/failureaccess-1.0.2.jar
[ERROR] urls[6] = file:/Users/philip/.m2/repository/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
[ERROR] urls[7] = file:/Users/philip/.m2/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar
[ERROR] urls[8] = file:/Users/philip/.m2/repository/org/checkerframework/checker-qual/3.43.0/checker-qual-3.43.0.jar
[ERROR] urls[9] = file:/Users/philip/.m2/repository/com/google/errorprone/error_prone_annotations/2.36.0/error_prone_annotations-2.36.0.jar
[ERROR] urls[10] = file:/Users/philip/.m2/repository/com/google/j2objc/j2objc-annotations/3.0.0/j2objc-annotations-3.0.0.jar
[ERROR] urls[11] = file:/Users/philip/.m2/repository/net/revelc/code/formatter/jsdt-core/3.5.0/jsdt-core-3.5.0.jar
[ERROR] urls[12] = file:/Users/philip/.m2/repository/com/google/code/gson/gson/2.11.0/gson-2.11.0.jar
[ERROR] urls[13] = file:/Users/philip/.m2/repository/com/ibm/icu/icu4j/76.1/icu4j-76.1.jar
[ERROR] urls[14] = file:/Users/philip/.m2/repository/net/java/dev/jna/jna-platform/5.15.0/jna-platform-5.15.0.jar
[ERROR] urls[15] = file:/Users/philip/.m2/repository/net/java/dev/jna/jna/5.15.0/jna-5.15.0.jar
[ERROR] urls[16] = file:/Users/philip/.m2/repository/org/osgi/org.osgi.service.prefs/1.1.2/org.osgi.service.prefs-1.1.2.jar
[ERROR] urls[17] = file:/Users/philip/.m2/repository/org/osgi/osgi.annotation/8.1.0/osgi.annotation-8.1.0.jar
[ERROR] urls[18] = file:/Users/philip/.m2/repository/org/osgi/org.osgi.util.function/1.2.0/org.osgi.util.function-1.2.0.jar
[ERROR] urls[19] = file:/Users/philip/.m2/repository/org/osgi/org.osgi.util.promise/1.3.0/org.osgi.util.promise-1.3.0.jar
[ERROR] urls[20] = file:/Users/philip/.m2/repository/org/osgi/org.osgi.util.measurement/1.0.2/org.osgi.util.measurement-1.0.2.jar
[ERROR] urls[21] = file:/Users/philip/.m2/repository/org/osgi/org.osgi.util.position/1.0.1/org.osgi.util.position-1.0.1.jar
[ERROR] urls[22] = file:/Users/philip/.m2/repository/org/osgi/org.osgi.util.xml/1.0.2/org.osgi.util.xml-1.0.2.jar
[ERROR] urls[23] = file:/Users/philip/.m2/repository/net/revelc/code/formatter/xml-formatter/0.4.0/xml-formatter-0.4.0.jar
[ERROR] urls[24] = file:/Users/philip/.m2/repository/net/sourceforge/cssparser/cssparser/0.9.30/cssparser-0.9.30.jar
[ERROR] urls[25] = file:/Users/philip/.m2/repository/org/apache/commons/commons-digester3/3.2/commons-digester3-3.2.jar
[ERROR] urls[26] = file:/Users/philip/.m2/repository/cglib/cglib/3.3.0/cglib-3.3.0.jar
[ERROR] urls[27] = file:/Users/philip/.m2/repository/org/ow2/asm/asm/9.7.1/asm-9.7.1.jar
[ERROR] urls[28] = file:/Users/philip/.m2/repository/commons-beanutils/commons-beanutils/1.10.1/commons-beanutils-1.10.1.jar
[ERROR] urls[29] = file:/Users/philip/.m2/repository/commons-collections/commons-collections/3.2.2/commons-collections-3.2.2.jar
[ERROR] urls[30] = file:/Users/philip/.m2/repository/commons-logging/commons-logging/1.3.5/commons-logging-1.3.5.jar
[ERROR] urls[31] = file:/Users/philip/.m2/repository/org/codehaus/plexus/plexus-resources/1.3.0/plexus-resources-1.3.0.jar
[ERROR] urls[32] = file:/Users/philip/.m2/repository/org/codehaus/plexus/plexus-xml/3.0.0/plexus-xml-3.0.0.jar
[ERROR] urls[33] = file:/Users/philip/.m2/repository/org/codehaus/plexus/plexus-utils/4.0.2/plexus-utils-4.0.2.jar
[ERROR] urls[34] = file:/Users/philip/.m2/repository/org/eclipse/jdt/org.eclipse.jdt.core/3.40.0/org.eclipse.jdt.core-3.40.0.jar
[ERROR] urls[35] = file:/Users/philip/.m2/repository/org/eclipse/platform/org.eclipse.core.resources/3.22.0/org.eclipse.core.resources-3.22.0.jar
[ERROR] urls[36] = file:/Users/philip/.m2/repository/org/eclipse/platform/org.eclipse.core.expressions/3.9.400/org.eclipse.core.expressions-3.9.400.jar
[ERROR] urls[37] = file:/Users/philip/.m2/repository/org/eclipse/platform/org.eclipse.osgi/3.22.0/org.eclipse.osgi-3.22.0.jar
[ERROR] urls[38] = file:/Users/philip/.m2/repository/org/eclipse/platform/org.eclipse.core.runtime/3.32.0/org.eclipse.core.runtime-3.32.0.jar
[ERROR] urls[39] = file:/Users/philip/.m2/repository/org/eclipse/platform/org.eclipse.equinox.common/3.19.200/org.eclipse.equinox.common-3.19.200.jar
[ERROR] urls[40] = file:/Users/philip/.m2/repository/org/eclipse/platform/org.eclipse.core.jobs/3.15.400/org.eclipse.core.jobs-3.15.400.jar
[ERROR] urls[41] = file:/Users/philip/.m2/repository/org/eclipse/platform/org.eclipse.equinox.registry/3.12.200/org.eclipse.equinox.registry-3.12.200.jar
[ERROR] urls[42] = file:/Users/philip/.m2/repository/org/eclipse/platform/org.eclipse.equinox.preferences/3.11.200/org.eclipse.equinox.preferences-3.11.200.jar
[ERROR] urls[43] = file:/Users/philip/.m2/repository/org/eclipse/platform/org.eclipse.core.contenttype/3.9.600/org.eclipse.core.contenttype-3.9.600.jar
[ERROR] urls[44] = file:/Users/philip/.m2/repository/org/eclipse/platform/org.eclipse.equinox.app/1.7.200/org.eclipse.equinox.app-1.7.200.jar
[ERROR] urls[45] = file:/Users/philip/.m2/repository/org/eclipse/platform/org.eclipse.core.filesystem/1.11.100/org.eclipse.core.filesystem-1.11.100.jar
[ERROR] urls[46] = file:/Users/philip/.m2/repository/org/eclipse/platform/org.eclipse.text/3.14.200/org.eclipse.text-3.14.200.jar
[ERROR] urls[47] = file:/Users/philip/.m2/repository/org/eclipse/platform/org.eclipse.core.commands/3.12.200/org.eclipse.core.commands-3.12.200.jar
[ERROR] urls[48] = file:/Users/philip/.m2/repository/org/eclipse/jdt/ecj/3.40.0/ecj-3.40.0.jar
[ERROR] urls[49] = file:/Users/philip/.m2/repository/org/jsoup/jsoup/1.19.1/jsoup-1.19.1.jar
[ERROR] urls[50] = file:/Users/philip/.m2/repository/org/w3c/css/sac/1.3/sac-1.3.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import from realm ClassRealm[maven.api, parent: null]]
[ERROR]
[ERROR] -----------------------------------------------------
[ERROR]
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException
which is caused by the Formatter plugin seems to require at least Java 17 at build time.
Finally, after switching to Java 17 I was able to compile it without issues.
@Adrian-Devries thank you for taking the time and providing answers to all comments I gave.
Your changes effectively mean, that at least at compile time you need Java 17.
And yes, it creates a ...java8....jar file, but it is not executable with Java 8:
java -jar validationtool-1.5.1-java8-standalone.jar -r . -s ../pom.xml ../*.xml
KoSIT Validator version 1.5.1
Loading scenarios from file:///Users/philip/dev/git-thirdparty/validator/target/../pom.xml
Using repository file:///Users/philip/dev/git-thirdparty/validator/target/./
Exception in thread "main" java.lang.NoClassDefFoundError: jakarta/xml/bind/ValidationEventHandler
at de.kosit.validationtool.api.Configuration.load(Configuration.java:113)
at de.kosit.validationtool.cmd.Validator.lambda$getConfiguration$0(Validator.java:193)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.HashMap$EntrySpliterator.forEachRemaining(HashMap.java:1723)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:566)
at de.kosit.validationtool.cmd.Validator.getConfiguration(Validator.java:197)
at de.kosit.validationtool.cmd.Validator.processActions(Validator.java:130)
at de.kosit.validationtool.cmd.Validator.mainProgram(Validator.java:85)
at de.kosit.validationtool.cmd.CommandLineOptions.call(CommandLineOptions.java:171)
at de.kosit.validationtool.cmd.CommandLineOptions.call(CommandLineOptions.java:39)
at picocli.CommandLine.executeUserObject(CommandLine.java:2031)
at picocli.CommandLine.access$1500(CommandLine.java:148)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2469)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2461)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2423)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277)
at picocli.CommandLine$RunLast.execute(CommandLine.java:2425)
at picocli.CommandLine.execute(CommandLine.java:2174)
at de.kosit.validationtool.cmd.CommandLineApplication.mainProgram(CommandLineApplication.java:80)
at de.kosit.validationtool.cmd.CommandLineApplication.main(CommandLineApplication.java:52)
Caused by: java.lang.ClassNotFoundException: jakarta.xml.bind.ValidationEventHandler
at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 24 more
Therefore I would not recommend to put that in the 1.5.1 release, but instead create a 1.6.0 (or so) release that eventually shifts the requirements towards a newer Java version.
Edit: the Java 11 version seems to run with Java 11. So bascially your changes require at least Java 17 for compilation and at least Java 11 for running the application.
First, with regards to the definition of a local repository: The definition uses an invalid URL <url>file:${project.basedir}/libs</url>. The URL should read <url>${project.baseUri}/libs</url> (cf. https://maven.apache.org/guides/introduction/introduction-to-the-pom.html) instead. If the URL should or must be built with the property project.basedir, then the syntax should be <url>file:///${project.basedir}/libs</url> .
Anyway, I think that it is a bad idea to use a local repository this way. What I did instead is, I installed the JAR as follows:
:InstallScenarios
for /r %%a in ("packaged-test-scenarios-?.?.?.jar") do (
if exist "%%~dpna.pom" (
for /f "tokens=1-3 delims=;" %%b in ('xml sel -T -t -v "/_:project/_:groupId" -o ";" -v "/_:project/_:artifactId" -o ";" -v "/_:project/_:version" -n "%%~dpna.pom"') do (
call :Try call mvn install:install-file ^
-Dfile="%%~a" ^
-DgroupId="%%~b" ^
-DartifactId="%%~c" ^
-Dversion="%%~d" ^
-Dpackaging=jar ^
-DgeneratePom=true
)
)
)
I suggest to provide the scenarios as a separate JAR in an official maven repository to get rid of all these quirks..
@Adrian-Devries agree that it would be nicer to upload that to Maven Central - we need to ask the developer what his thoughts were on this one ;-)
Second, compile-time requirements: As already reported, I have used JDK 21 at compile time. If the formatter-maven-plugin is a conditio sine qua non, and if this plugin should be updated to the most recent version, then JDK 17 is required (cf. https://code.revelc.net/formatter-maven-plugin/eclipse-versions.html). As already reported, the formatter-maven-plugin could be replaced by the rewrite-maven-plugin. In this case, JDK 11 is sufficient.
Third, run-time requirements: I agree that jaxb-runtime-4.0.5 and jakarta.xml.bind-api-4.0.2 require JDK 11 at run time. Therefore, the file "validationtool-1.5.1-java8-standalone.jar" will be created, but it does not work. In order to keep the solution compatible to JDK 8, jaxb-runtime-3.0.2 and jakarta.xml.bind-api-3.0.1 need to be used. In addition, the configuration of the maven-shade-plugin needs to be changed, i.e., the artifact exclusions for JDK8 need to be removed. With these changes the file "validationtool-1.5.1-java8-standalone.jar" works again. Note that in this case both JAR files are identical, "validationtool-1.5.1-standalone.jar" and "validationtool-1.5.1-java8-standalone.jar".