【发布时间】:2020-10-18 01:42:38
【问题描述】:
所以我想构建一个具有以下结构的项目:
Project[pom.xml]
-----module 1[pom.xml]
-----sub-module 1[pom.xml]
-----sub-module 2[pom.xml]
-----sub-module 3[pom.xml]
-----module 2[pom.xml]
-----module 3[pom.xml]
现在,模块 1 和模块 2 是模块 3 的依赖项。
问题1:这种方法有问题吗?
问题2:当我实现这个时,该项目的包装结构为 pom,用于父 pom 和模块 1,而包装结构为模块 1、模块 2 和模块 3 的子模块。 现在当我运行 mvn clean install 时,我得到了这个错误:
org.apache.maven.lifecycle.LifecycleExecutionException:无法在项目 foo-module3 上执行目标:无法解析项目 com.org:foo-module3:jar:0.0.1-SNAPSHOT 的依赖项:找不到 com。 ***/libs-snapshot 中的 org:foo-module1:jar:0.0.1-SNAPSHOT 已缓存在本地存储库中,直到经过 central2 的更新间隔或强制更新后才会重新尝试解析
在 org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies (LifecycleDependencyResolver.java:269)
在 org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies (LifecycleDependencyResolver.java:147)
在 org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved (MojoExecutor.java:248)
在 org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:202)
在 org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
在 org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
在 org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
在 org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
在 org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
在 org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
在 org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
在 org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
在 org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
在 org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
在 sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
在 java.lang.reflect.Method.invoke (Method.java:498)
在 org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
在 org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
在 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
在 org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
原因:org.apache.maven.project.DependencyResolutionException:无法解析项目 com.org:foo-module3:jar:0.0.1-SNAPSHOT 的依赖项:找不到 com.org:foo-module1:jar:0.0。 ***/libs-snapshot 中的 1-SNAPSHOT 已缓存在本地存储库中,直到 central2 的更新间隔已过或强制更新后才会重新尝试解析
在 org.apache.maven.project.DefaultProjectDependenciesResolver.resolve (DefaultProjectDependenciesResolver.java:209)
在 org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies (LifecycleDependencyResolver.java:243)
在 org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies (LifecycleDependencyResolver.java:147)
在 org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved (MojoExecutor.java:248)
在 org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:202)
在 org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
在 org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
在 org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
在 org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
在 org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
在 org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
在 org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
在 org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
在 org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
在 org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
在 sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
在 java.lang.reflect.Method.invoke (Method.java:498)
在 org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
在 org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
在 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
在 org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
引起:org.eclipse.aether.resolution.DependencyResolutionException: 找不到com.oorg:foo-module1:jar:0.0.1-SNAPSHOT in ***/libs-snapshot 缓存在本地仓库,解析不会重新尝试,直到 central2 的更新间隔已过或强制更新
在 org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies (DefaultRepositorySystem.java:357)
在 org.apache.maven.project.DefaultProjectDependenciesResolver.resolve (DefaultProjectDependenciesResolver.java:202)
在 org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies (LifecycleDependencyResolver.java:243)
在 org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies (LifecycleDependencyResolver.java:147)
在 org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved (MojoExecutor.java:248)
在 org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:202)
在 org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
在 org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
在 org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
在 org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
在 org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
在 org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
在 org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
在 org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
在 org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
在 org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
在 sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
在 java.lang.reflect.Method.invoke (Method.java:498)
在 org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
在 org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
在 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
在 org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
原因:org.eclipse.aether.resolution.ArtifactResolutionException: 找不到 com.org:foo-module1:jar:0.0.1-SNAPSHOT in ***/libs-snapshot 缓存在本地仓库,解析不会重新尝试,直到 central2 的更新间隔已过或强制更新
在 org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve (DefaultArtifactResolver.java:424)
在 org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts (DefaultArtifactResolver.java:229)
在 org.jfrog.build.extractor.maven.resolver.ArtifactoryEclipseArtifactResolver.resolveArtifacts (ArtifactoryEclipseArtifactResolver.java:56)
在 org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies (DefaultRepositorySystem.java:340)
在 org.apache.maven.project.DefaultProjectDependenciesResolver.resolve (DefaultProjectDependenciesResolver.java:202)
在 org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies (LifecycleDependencyResolver.java:243)
在 org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies (LifecycleDependencyResolver.java:147)
在 org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved (MojoExecutor.java:248)
在 org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:202)
在 org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
在 org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
在 org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
在 org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
在 org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
在 org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
在 org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
在 org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
在 org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
在 org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
在 sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
在 java.lang.reflect.Method.invoke (Method.java:498)
在 org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
在 org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
在 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
在 org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
原因:org.eclipse.aether.transfer.ArtifactNotFoundException: Failure to find com.org:foo-module1:jar:0.0.1-SNAPSHOT in ***/libs-snapshot 缓存在本地仓库,解析不会重新尝试,直到 central2 的更新间隔已过或强制更新
在 org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.newException (DefaultUpdateCheckManager.java:218)
在 org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.checkArtifact (DefaultUpdateCheckManager.java:193)
在 org.eclipse.aether.internal.impl.DefaultArtifactResolver.gatherDownloads (DefaultArtifactResolver.java:559)
在 org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads (DefaultArtifactResolver.java:483)
在 org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve (DefaultArtifactResolver.java:401)
在 org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts (DefaultArtifactResolver.java:229)
在 org.jfrog.build.extractor.maven.resolver.ArtifactoryEclipseArtifactResolver.resolveArtifacts (ArtifactoryEclipseArtifactResolver.java:56)
在 org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies (DefaultRepositorySystem.java:340)
在 org.apache.maven.project.DefaultProjectDependenciesResolver.resolve (DefaultProjectDependenciesResolver.java:202)
在 org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies (LifecycleDependencyResolver.java:243)
在 org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies (LifecycleDependencyResolver.java:147)
在 org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved (MojoExecutor.java:248)
在 org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:202)
在 org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
在 org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
在 org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
在 org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
在 org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
在 org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
在 org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
在 org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
在 org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
在 org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
在 sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
在 java.lang.reflect.Method.invoke (Method.java:498)
在 org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
在 org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
在 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
在 org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[错误]
[错误] 使用 -X 开关重新运行 Maven 以启用完整的调试日志记录。
[错误]
[错误] 有关错误和可能的解决方案的更多信息,请阅读以下文章:
[错误] [帮助 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
[错误]
[错误] 更正问题后,您可以使用命令恢复构建
[错误] mvn -rf :foo-module3
【问题讨论】:
标签: java spring spring-boot maven intellij-idea