2015-12-30 58 views
0

我有一个关于maven的问题。我只是用eclipse mars使用m2e,maven版本是3.3.3。它无法解决我的nexus私有存储库中的间接依赖关系。Maven不解决来自私人回购的间接依赖关系

例如,有3个项目:common-A,common-B,biz-X。

  • common-A和common-B都在nexus private repo中部署为jar。
  • common-B取决于common-A。 biz-X取决于共同B。所以biz-X间接取决于普通的A.
  • biz-X项目成功下载了common-B。

问题是,biz-X无法下载common-A.jar。

任何人都可以帮助我!谢谢!


UPDATE1:

我有一些进步,这里是M2E的堆栈跟踪:

org.eclipse.aether.resolution.ArtifactDescriptorException: Failed to read artifact descriptor for (my groupId):common-B:jar:0.0.1-SNAPSHOT 
at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:349) 
at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:218) 
at org.eclipse.aether.internal.impl.DefaultDependencyCollector.resolveCachedArtifactDescriptor(DefaultDependencyCollector.java:535) 
at org.eclipse.aether.internal.impl.DefaultDependencyCollector.getArtifactDescriptorResult(DefaultDependencyCollector.java:519) 
at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency(DefaultDependencyCollector.java:409) 
at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency(DefaultDependencyCollector.java:363) 
at org.eclipse.aether.internal.impl.DefaultDependencyCollector.process(DefaultDependencyCollector.java:351) 
at org.eclipse.aether.internal.impl.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:254) 
at org.eclipse.aether.internal.impl.DefaultRepositorySystem.collectDependencies(DefaultRepositorySystem.java:316) 
at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:172) 
at org.apache.maven.project.DefaultProjectBuilder.resolveDependencies(DefaultProjectBuilder.java:215) 
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:188) 
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:119) 
at org.eclipse.m2e.core.internal.embedder.MavenImpl.readMavenProject(MavenImpl.java:636) 
at org.eclipse.m2e.core.internal.project.registry.DefaultMavenDependencyResolver.resolveProjectDependencies(DefaultMavenDependencyResolver.java:63) 
at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refreshPhase2(ProjectRegistryManager.java:529) 
at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager$3.call(ProjectRegistryManager.java:491) 
at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager$3.call(ProjectRegistryManager.java:1) 
at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:176) 
at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:151) 
at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:495) 
at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:350) 
at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:297) 
at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration0(ProjectConfigurationManager.java:398) 
at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager$2.call(ProjectConfigurationManager.java:345) 
at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager$2.call(ProjectConfigurationManager.java:1) 
at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:176) 
at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:151) 
at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:99) 
at org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:1351) 
at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration(ProjectConfigurationManager.java:342) 
at org.eclipse.m2e.core.ui.internal.UpdateMavenProjectJob.runInWorkspace(UpdateMavenProjectJob.java:77) 
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:39) 
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)Caused by: org.apache.maven.model.resolution.UnresolvableModelException: Could not find artifact (my groupId):root:pom:0.0.1-SNAPSHOT in public (http://192.168.1.35:8081/nexus/content/repositories/central) 
at org.apache.maven.repository.internal.DefaultModelResolver.resolveModel(DefaultModelResolver.java:177) 
at org.apache.maven.repository.internal.DefaultModelResolver.resolveModel(DefaultModelResolver.java:226) 
at org.apache.maven.model.building.DefaultModelBuilder.readParentExternally(DefaultModelBuilder.java:978) 
at org.apache.maven.model.building.DefaultModelBuilder.readParent(DefaultModelBuilder.java:796) 
at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:325) 
at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:340) 
... 33 moreCaused by: org.eclipse.aether.resolution.ArtifactResolutionException: Could not find artifact (my groupId):root:pom:0.0.1-SNAPSHOT in public (http://192.168.1.35:8081/nexus/content/repositories/central) 
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:444) 
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:246) 
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:223) 
at org.apache.maven.repository.internal.DefaultModelResolver.resolveModel(DefaultModelResolver.java:173) 
... 38 moreCaused by: org.eclipse.aether.transfer.ArtifactNotFoundException: Could not find artifact (my groupId):root:pom:0.0.1-SNAPSHOT in public (http://192.168.1.35:8081/nexus/content/repositories/central) 
at io.takari.aether.connector.AetherRepositoryConnector$2.wrap(AetherRepositoryConnector.java:893) 
at io.takari.aether.connector.AetherRepositoryConnector$2.wrap(AetherRepositoryConnector.java:1) 
at io.takari.aether.connector.AetherRepositoryConnector$GetTask.flush(AetherRepositoryConnector.java:673) 
at io.takari.aether.connector.AetherRepositoryConnector.get(AetherRepositoryConnector.java:310) 
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:520) 
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:421) 
... 41 more 

看来,行家说,她无法理解的共同-B的POM文件。但是我发现有包括一个pom.xml在下载共B.jar,位置是:

/META-INF /行家/(一些包装)/common-B/pom.xml

它实际上是我在项目common-B的根目录中定义的pom。 但为什么maven不加载它? 或者如果这个pom文件不是maven需要的? 或者如果pom文件需要从私人回购下载?如果是这样,我发现common-B-0.0.1-yyyyMMdd(可能是seq).pom在正确的nexus repo目录中的jar文件的相同位置,maven不会加载它?是否因为我将这个工件部署为SNAPSHOT类型? 或者是否有一些我需要做的“mvn deploy”操作?

以上是线索。希望他们有用。


UPDATE2:

哦,我....我必须跟我开玩笑。我找到了原因。因为我忘了部署一个root pom,所有常见的工件都会扩展它。现在问题解决了。感谢你们!

+0

什么是依赖关系的范围? –

+0

他们都是编译 Oraple

回答

0

您需要两个版本库的URL,以及快照库网址添加到pom.xml中(或)settings.xml中

请尝试将两个URL作为链接指定:
Adding Snapshot Repo to pom.xml

+0

谢谢,但这不是我的问题,问题已解决。请参阅update2。 – Oraple