maven icon indicating copy to clipboard operation
maven copied to clipboard

Project build fails when a dependency's parent cannot be found

Open laeubi opened this issue 3 months ago • 2 comments

Affected version

3.9.11

Bug description

If I have a dependency in my pom and the parent can not be resolved maven completely fails the build:

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project org.eclipse.compare.tests: Could not collect dependencies for project org.eclipse.platform:org.eclipse.compare.tests:eclipse-plugin:3.8.900-SNAPSHOT
Failed to read artifact descriptor for org.eclipse.platform:org.eclipse.platform.testing:jar:1.0.0-SNAPSHOT
	Caused by: The following artifacts could not be resolved: org.eclipse.platform:eclipse.platform:pom:4.38.0-SNAPSHOT (absent): org.eclipse.platform:eclipse.platform:pom:4.38.0-SNAPSHOT was not found in https://repo.eclipse.org/content/repositories/eclipse/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of eclipse-hosted has elapsed or updates are forced

    at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies (LifecycleDependencyResolver.java:246)
    at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies (LifecycleDependencyResolver.java:136)
    at org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved (MojoExecutor.java:355)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:314)
    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.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
    at java.lang.reflect.Method.invoke (Method.java:580)
    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: org.apache.maven.project.DependencyResolutionException: Could not collect dependencies for project org.eclipse.platform:org.eclipse.compare.tests:eclipse-plugin:3.8.900-SNAPSHOT
Failed to read artifact descriptor for org.eclipse.platform:org.eclipse.platform.testing:jar:1.0.0-SNAPSHOT
	Caused by: The following artifacts could not be resolved: org.eclipse.platform:eclipse.platform:pom:4.38.0-SNAPSHOT (absent): org.eclipse.platform:eclipse.platform:pom:4.38.0-SNAPSHOT was not found in https://repo.eclipse.org/content/repositories/eclipse/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of eclipse-hosted has elapsed or updates are forced

    at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve (DefaultProjectDependenciesResolver.java:160)
    at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies (LifecycleDependencyResolver.java:227)
    at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies (LifecycleDependencyResolver.java:136)
    at org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved (MojoExecutor.java:355)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:314)
    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.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
    at java.lang.reflect.Method.invoke (Method.java:580)
    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)

This can become quite annoying if for example you do a local development or if there are "bad" dependencies in central/nexus.

I'm quite sure that in previous versions of maven this only results in a warning that dependency resolution might be incomplete.

laeubi avatar Oct 14 '25 14:10 laeubi

Can you create a reproducer, and can you tell us which "previous versions" behave as you expect?

cstamas avatar Oct 14 '25 14:10 cstamas

Not yet able to reliable test as maven forces my plugins in my build require latest maven versions :-\

In any case it would be good if maven would be more "graceful" here, as you recently explained quite nicely I want to depend on the jar (!) and do not really care much about the pom and even less about the parent at all (what only contains build configuration here).

So having a little warning would be fine of course ;-)

laeubi avatar Oct 14 '25 14:10 laeubi