Bug in property resolution in Maven 4.0.0-rc6?
Thorsten Heit <[email protected]>
| Newsgroups | gmane.comp.jakarta.turbine.maven.user |
|---|---|
| Message-ID | <[email protected]> |
Hi,
I was giving Maven 4.0.0-rc6 a try on an internal multimodule project
and faced a strange phenomenon; I hope someone can shed a light on
what's going on...
The project itself consists of several modules with some having
inter-module dependencies, and a few of them use the assembly plugin to
create a zip distribution. The structure is basically the following:
main pom:
- lists all modules
- defines build plugins with versions in the plugin management section
- has a dependencyManagement section to define the versions of the
dependencies used in the modules
The modules in question are:
* app.common
contains common model and utility classes
* app.server
- implements the Jakarta RS server part of the application
- depends (among other things) on app.common
* app.http2module.undertow
- contains a configurator for Undertow to allow for working in HTTP/2
- depends on
+- org.jboss.resteasy:resteasy-undertow-cdi
\- io.smallrye:jandex:jar
* app.server.resteasy
- contains code to start the server with RESTeasy as Jakarta RS
implementation
- depends on
+- app.server
+- org.jboss.resteasy:resteasy-undertow-cdi
+- app.http2module.undertow
and a few others
- uses the assembly plugin to build a zip distribution
With Maven 3.9.16 and 3.10.0-rc1, "mvn clean verify" works on the whole
project, but with Maven 4.0.0-rc6 the build fails in the
app.server.resteasy module when building the assembly:
(...)
[INFO] Reading assembly descriptor: src/main/assembly/zip.xml
[DEBUG] After assembly is interpolated:
<?xml version="1.0" encoding="UTF-8"?>
<assembly xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.2.0
https://maven.apache.org/xsd/assembly-2.2.0.xsd"
xmlns="http://maven.apache.org/ASSEMBLY/2.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<id>zip</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<outputDirectory>lib-${project.version}</outputDirectory>
</dependencySet>
</dependencySets>
</assembly>
[DEBUG] All known ContainerDescriptorHandler components: [plexus,
metaInf-services, metaInf-spring, file-aggregator]
[INFO]
--------------------------------------------------------------------------------------------------------------------------
[INFO] Reactor Summary for Testserver 1.4.2-SNAPSHOT:
[INFO]
[INFO] ...
[INFO] app.server.resteasy
..................................................................................
FAILURE [ 0.996 s]
[INFO] ...
[INFO]
--------------------------------------------------------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO]
--------------------------------------------------------------------------------------------------------------------------
[INFO] Total time: 16.055 s
[INFO] Finished at: 2026-08-24T14:40:50+02:00
[INFO]
--------------------------------------------------------------------------------------------------------------------------
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-assembly-plugin:3.8.0:single (default) on
project app.server.resteasy: Execution default of goal
org.apache.maven.plugins:maven-assembly-plugin:3.8.0:single failed:
Invalid Dependency Request: null ->
[com.example.app:app.server:jar:1.4.2-SNAPSHOT (compile),
org.jboss.resteasy:resteasy-undertow-cdi:jar:7.0.3.Final (runtime),
org.jboss.resteasy:resteasy-jackson2-provider:jar:7.0.3.Final (runtime),
org.jboss.resteasy:resteasy-validator-provider:jar:7.0.3.Final
(runtime), org.glassfish.expressly:expressly:jar:6.0.0 (runtime),
com.example.app:app.http2module.undertow:jar:1.4.2-SNAPSHOT (runtime)] <
[artifactory-mirror (https://.../mirror, default, releases), snapshots
(https://.../libs-snapshot, default, releases+snapshots)]: Invalid
Collect Request: null -> [com.example.app:app.server:jar:1.4.2-SNAPSHOT
(compile), org.jboss.resteasy:resteasy-undertow-cdi:jar:7.0.3.Final
(runtime), org.jboss.resteasy:resteasy-jackson2-provider:jar:7.0.3.Final
(runtime),
org.jboss.resteasy:resteasy-validator-provider:jar:7.0.3.Final
(runtime), org.glassfish.expressly:expressly:jar:6.0.0 (runtime),
com.example.app:app.http2module.undertow:jar:1.4.2-SNAPSHOT (runtime)] <
[artifactory-mirror (https://.../mirror, default, releases), snapshots
(https://.../libs-snapshot, default, releases+snapshots)] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to
execute goal org.apache.maven.plugins:maven-assembly-plugin:3.8.0:single
(default) on project app.server.resteasy: Execution default of goal
org.apache.maven.plugins:maven-assembly-plugin:3.8.0:single failed:
Invalid Dependency Request: null ->
[com.example.app:app.server:jar:1.4.2-SNAPSHOT (compile),
org.jboss.resteasy:resteasy-undertow-cdi:jar:7.0.3.Final (runtime),
org.jboss.resteasy:resteasy-jackson2-provider:jar:7.0.3.Final (runtime),
org.jboss.resteasy:resteasy-validator-provider:jar:7.0.3.Final
(runtime), org.glassfish.expressly:expressly:jar:6.0.0 (runtime),
com.example.app:app.http2module.undertow:jar:1.4.2-SNAPSHOT (runtime)] <
[artifactory-mirror (https://.../mirror, default, releases), snapshots
(https://.../libs-snapshot, default, releases+snapshots)]
at
org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2(MojoExecutor.java:346)
at
org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:310)
(...)
at
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:314)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution
default of goal
org.apache.maven.plugins:maven-assembly-plugin:3.8.0:single failed:
Invalid Dependency Request: null ->
[com.example.app:app.server:jar:1.4.2-SNAPSHOT (compile),
org.jboss.resteasy:resteasy-undertow-cdi:jar:7.0.3.Final (runtime),
org.jboss.resteasy:resteasy-jackson2-provider:jar:7.0.3.Final (runtime),
org.jboss.resteasy:resteasy-validator-provider:jar:7.0.3.Final
(runtime), org.glassfish.expressly:expressly:jar:6.0.0 (runtime),
com.example.app:app.http2module.undertow:jar:1.4.2-SNAPSHOT (runtime)] <
[artifactory-mirror (https://.../mirror, default, releases), snapshots
(https://.../libs-snapshot, default, releases+snapshots)]
at
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:159)
at
org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2(MojoExecutor.java:339)
(...)
at
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:314)
Caused by: java.lang.IllegalArgumentException: Invalid Dependency
Request: null -> [com.example.app:app.server:jar:1.4.2-SNAPSHOT
(compile), org.jboss.resteasy:resteasy-undertow-cdi:jar:7.0.3.Final
(runtime), org.jboss.resteasy:resteasy-jackson2-provider:jar:7.0.3.Final
(runtime),
org.jboss.resteasy:resteasy-validator-provider:jar:7.0.3.Final
(runtime), org.glassfish.expressly:expressly:jar:6.0.0 (runtime),
com.example.app:app.http2module.undertow:jar:1.4.2-SNAPSHOT (runtime)] <
[artifactory-mirror (https://.../mirror, default, releases), snapshots
(https://.../libs-snapshot, default, releases+snapshots)]
at
org.eclipse.aether.internal.impl.DefaultRepositorySystemValidator.validateDependencyRequest(DefaultRepositorySystemValidator.java:229)
at
org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:333)
at
org.apache.maven.plugins.assembly.artifact.DefaultDependencyResolver.resolveTransitive(DefaultDependencyResolver.java:240)
at
org.apache.maven.plugins.assembly.artifact.DefaultDependencyResolver.updateDependencySetResolutionRequirements(DefaultDependencyResolver.java:193)
(...)
at
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:314)
Caused by: java.lang.IllegalArgumentException: Invalid Collect Request:
null -> [com.example.app:app.server:jar:1.4.2-SNAPSHOT (compile),
org.jboss.resteasy:resteasy-undertow-cdi:jar:7.0.3.Final (runtime),
org.jboss.resteasy:resteasy-jackson2-provider:jar:7.0.3.Final (runtime),
org.jboss.resteasy:resteasy-validator-provider:jar:7.0.3.Final
(runtime), org.glassfish.expressly:expressly:jar:6.0.0 (runtime),
com.example.app:app.http2module.undertow:jar:1.4.2-SNAPSHOT (runtime)] <
[artifactory-mirror (https://.../mirror, default, releases), snapshots
(https://.../libs-snapshot, default, releases+snapshots)]
at
org.eclipse.aether.internal.impl.DefaultRepositorySystemValidator.mayThrow(DefaultRepositorySystemValidator.java:62)
at
org.eclipse.aether.internal.impl.DefaultRepositorySystemValidator.validateCollectRequest(DefaultRepositorySystemValidator.java:220)
at
org.eclipse.aether.internal.impl.DefaultRepositorySystemValidator.validateDependencyRequest(DefaultRepositorySystemValidator.java:227)
at
org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:333)
at
org.apache.maven.plugins.assembly.artifact.DefaultDependencyResolver.resolveTransitive(DefaultDependencyResolver.java:240)
at
org.apache.maven.plugins.assembly.artifact.DefaultDependencyResolver.updateDependencySetResolutionRequirements(DefaultDependencyResolver.java:193)
(...)
at
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:314)
Suppressed: java.lang.IllegalArgumentException: Not fully
interpolated dependency
jakarta.websocket:jakarta.websocket-api:jar:${version.jakarta.websocket.jakarta-websocket-api}
()
at
org.apache.maven.impl.resolver.validator.MavenValidator.validateDependency(MavenValidator.java:85)
at
org.eclipse.aether.internal.impl.DefaultRepositorySystemValidator.validateCollectRequest(DefaultRepositorySystemValidator.java:207)
at
org.eclipse.aether.internal.impl.DefaultRepositorySystemValidator.validateDependencyRequest(DefaultRepositorySystemValidator.java:227)
at
org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:333)
at
org.apache.maven.plugins.assembly.artifact.DefaultDependencyResolver.resolveTransitive(DefaultDependencyResolver.java:240)
at
org.apache.maven.plugins.assembly.artifact.DefaultDependencyResolver.updateDependencySetResolutionRequirements(DefaultDependencyResolver.java:193)
(...)
at
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:314)
Suppressed: java.lang.IllegalArgumentException: Not fully
interpolated dependency
jakarta.websocket:jakarta.websocket-client-api:jar:${version.jakarta.websocket.jakarta-websocket-api}
()
at
org.apache.maven.impl.resolver.validator.MavenValidator.validateDependency(MavenValidator.java:85)
at
org.eclipse.aether.internal.impl.DefaultRepositorySystemValidator.validateCollectRequest(DefaultRepositorySystemValidator.java:207)
at
org.eclipse.aether.internal.impl.DefaultRepositorySystemValidator.validateDependencyRequest(DefaultRepositorySystemValidator.java:227)
at
org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:333)
at
org.apache.maven.plugins.assembly.artifact.DefaultDependencyResolver.resolveTransitive(DefaultDependencyResolver.java:240)
at
org.apache.maven.plugins.assembly.artifact.DefaultDependencyResolver.updateDependencySetResolutionRequirements(DefaultDependencyResolver.java:193)
(...)
at
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:314)
[ERROR]
[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/PluginExecutionException
[ERROR]
I could trace that down to the following declaration inside the main
pom's dependencyManangement section:
<dependency>
<groupId>io.undertow</groupId>
<artifactId>undertow-dist</artifactId>
<version>2.4.1.Final</version>
<scope>import</scope>
<type>pom</type>
</dependency>
When I replace this by
<dependency>
<groupId>io.undertow</groupId>
<artifactId>undertow-core</artifactId>
<version>2.4.1.Final</version>
</dependency>
because that's the only dependency I'm actually using, everything works.
Is this intentionally? A change that comes with Maven 4? Or something
completely different?
Regards
Thorsten
OpenPGP_0x5A54BBB878225E08.asc
(application/pgp-keys, 3 KB)
-----BEGIN PGP PUBLIC KEY BLOCK----- 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 =Vfaa -----END PGP PUBLIC KEY BLOCK-----
OpenPGP_signature.asc
(application/pgp-signature, 840 B)
-----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEEg4R16yy6iEem6mq+WlS7uHgiXggFAmqMYkQFAwAAAAAACgkQWlS7uHgiXghc kQ//ajdl+IMlpPLyXgceCsK7f1XDOX8U1b5RwhjXa4vLAyqgn1ko8rVmunX+Extp9AlYTJc4Fe3C +KC7hfyiAtyE+hD1yBYiTpy1RDu9n6qS0pDFxHXk9ANJt6RXhzgyd7wHAaywDUAIj+GJpInGoeVT NEW70YNpWsL1cvnyRTJ/Nl6zYvM26h+X8cC3CC1edA4o5ZAdyOvyMIobj7d3WEQiPfHBVxB5Gy0l E5eXel3fk3/0YPuIq1D+8pKj0Z8iW9+/e6VfF8k7P7olr+M2nsusDbfOLNXsrEfZDKwg6/nSr1Q5 A7qV/qvrPDOQpextTwrZJqbnyen/EjSv14b4LlmIZYMHz33owiCzqBbAbX7mIBNExHgc37ZKzyg6 h8a3szLpK3eEzzotEH/VIooz6iCOr4gmzXmZdXtQgkWq3YjRkqAGYkFiEevrY6+w3t2B3BF6weXN B807vuPvdBZPL+zqEE3S2407Jf12BxfUMWl2WjQGAi2jVf1xIoonvpfsBE8T4ctquMNA+jHSoalf jyM4S9eDM4PLGGbu6wEnxKC34U8B4f+Q2s6D1FRAZfDnmlRIXB5HlhyKdSmsTh9HW/CixNoY7dM9 OoVW6gq4t++al4pfo5ZTkogoFZqqIQIeDhYKWr81F/n01oQMj7Bmkwj8Hrc8W6HuaMfVDmnw+H1F 97U= =8cUT -----END PGP SIGNATURE-----