Java 无法解析依赖项,无法读取项目描述符,无法收集依赖项
有一个项目myProject有两个模块,moduleB依赖于moduleA。moduleA成功构建并部署在nexus上,但当您尝试部署moduleB时,会出现以下错误:Java 无法解析依赖项,无法读取项目描述符,无法收集依赖项,java,maven,dependencies,Java,Maven,Dependencies,有一个项目myProject有两个模块,moduleB依赖于moduleA。moduleA成功构建并部署在nexus上,但当您尝试部署moduleB时,会出现以下错误: [ERROR] Failed to execute goal on project moduleB: Could not resolve dependencies for project groupId:moduleB:jar:1.0-SNAPSHOT Failed to collect dependencies at gr
[ERROR] Failed to execute goal on project moduleB:
Could not resolve dependencies for project groupId:moduleB:jar:1.0-SNAPSHOT
Failed to collect dependencies at groupId:moduleA:jar:1.0-SNAPSHOT:
Failed to read artifact descriptor for groupId:moduleA:jar:1.0-SNAPSHOT:
Could not find artifact groupId:myProject:pom:1.0-SNAPSHOT -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException:
Failed to execute goal on project moduleB:
Could not resolve dependencies for project groupId:moduleB:jar:1.0-SNAPSHOT:
Failed to collect dependencies at groupId:moduleA:jar:1.0-SNAPSHOT
或者有时候这个:
[ERROR] Failed to execute goal on project moduleB:
Could not resolve dependencies for project groupId:moduleB:jar:1.0-SNAPSHOT
Failed to collect dependencies at groupId:moduleA:jar:1.0-SNAPSHOT:
Failed to read artifact descriptor for groupId:moduleA:jar:1.0-SNAPSHOT:
Failure to find groupId:myProject:pom:360
in http://lonrs07557:8081/nexus/content/groups/public/ was cached in the local repository,
resolution will not be reattempted until the update interval
of myProject_maven_repo has elapsed or updates are forced.
我四处寻找解决方案,但每次都会出现不同的错误,结果变得混乱。我试过做一个clean-U,一个依赖树,一个有效的pom等等(都没有成功)。我的maven回购协议设置正确:
<repositories>
<repository>
<id>nexus</id>
<name>nexus repository</name>
<url>http://lonrs07557:8081/nexus/content/groups/repo</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
[...]
<distributionManagement>
<site>
<id>lonrs07557-docs</id>
<name>Documentation Repository</name>
<url>scp://lonrs07557:9999/content/maven/site-documentation</url>
</site>
<repository>
<id>lonrs07557-releases</id>
<name>Release Repository</name>
<url> dav:http://lonrs07557:8081/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>lonrs07557-snapshots</id>
<name>Snapshot Repository</name>
<url>dav:http://lonrs07557:8081/nexus/content/repositories/snapshots</url>
<uniqueVersion>false</uniqueVersion>
</snapshotRepository>
</distributionManagement>
另外,当我在本地构建时,一切都是成功的,当我稍后通过TeamCity进行构建时,它在前面提到的问题上失败了,因此在我努力在本地重现问题的过程中,我删除了我的本地maven回购协议,它被迫创建一个新的协议,这导致了相同的错误。然后我通过先构建moduleA,然后构建moduleB来解决这个问题。但是,当我通过TeamCity代理执行此操作时,我不能使用相同的解决方法
我运行它的方式(本地和TeamCity)是:
settings.xml
c:/maven/repository
org.mortbay.jetty
com.totsp.gwt
lonrs07563文件
XXXXX
XXXXX
不
lonrs07557版本
XXXXX
XXXXX
lonrs07557快照
XXXXX
XXXXX
myProject\u maven\u回购
*
http://lonrs07557:8081/nexus/content/groups/public/
地方的
符合事实的
${env.MYPROJECT_CLUSTER_PORT}
${env.MYPROJECT_CLUSTER_ADDRESS}
${env.hostname}
我确实定义了一个${project.groupId}moduleA${project.version}有几个缺陷:您有一个名为“groupId”的groupId
?奇怪的第二:您显然希望将快照引入存储库,但您启用的存储库是一个发布repo。也许这是你的问题。它就是不在那里,Maven看的地方。命名约定是这样的,因为我无权分享实际的名字!那么http://57:8081/nexus
?缺少一些字符…settings.xml中是否有镜像元素?如果是,请给我们看看。此外,存储库元素在哪里定义?在您的设置中还是在POM中?第三:分发管理元素只用于上传,不用于依赖关系解析。
[WARNING] The POM for groupId:log-util:jar:1.0-SNAPSHOT is missing,
no dependency information available
mvn clean deploy -f moduleB/pom.xml -U -X
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>c:/maven/repository</localRepository>
<pluginGroups>
<pluginGroup>org.mortbay.jetty</pluginGroup>
<pluginGroup>com.totsp.gwt</pluginGroup>
</pluginGroups>
<servers>
<server>
<id>lonrs07563-docs</id>
<username>XXXXX</username>
<password>XXXXX</password>
<configuration>
<knownHostsProvider
implementation="org.apache.maven.wagon.providers.ssh.knownhost.NullKnownHostProvider">
<hostKeyChecking>no</hostKeyChecking>
</knownHostsProvider>
</configuration>
</server>
<server>
<id>lonrs07557-releases</id>
<username>XXXXX</username>
<password>XXXXX</password>
</server>
<server>
<id>lonrs07557-snapshots</id>
<username>XXXXX</username>
<password>XXXXX</password>
</server>
</servers>
<mirrors>
<mirror>
<id>myProject_maven_repo</id>
<mirrorOf>*</mirrorOf>
<url>http://lonrs07557:8081/nexus/content/groups/public/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>local</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<clusterport>${env.MYPROJECT_CLUSTER_PORT}</clusterport>
<clusteraddress>${env.MYPROJECT_CLUSTER_ADDRESS}</clusteraddress>
<hostname>${env.hostname}</hostname>
</properties>
</profile>
</profiles>
</settings>