是否有一种方法可以指示Maven不要为某些依赖项寻找工件描述符? 我正在为这个问题而苦苦挣扎:
[ERROR] Failed to execute goal on project zws-consumer: Could not resolve dependencies for project com.etech.zws:zws-consumer:jar:2.9.28.RC1-SNAPSHOT: Failed to collect dependencies at com.ptv:xlocate-cxf-client:jar:1.20.1.3: Failed to read artifact descriptor for com.ptv:xlocate-cxf-client:jar:1.20.1.3: Could not find artifact com.ptvag.xserver.build:xserver-parent:pom:1.20.1.0 in artifactory-etech-releases (https://artifactory.etech.delivery/artifactory/etech/releases/) -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project zws-consumer: Could not resolve dependencies for project com.etech.zws:zws-consumer:jar:2.9.28.RC1-SNAPSHOT: Failed to collect dependencies at com.ptv:xlocate-cxf-client:jar:1.20.1.3
at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies (LifecycleDependencyResolver.java:269)
...
因此探查似乎很清楚:
Could not find artifact com.ptvag.xserver.build:xserver-parent:pom:1.20.1.0 in artifactory-etech-releases (https://artifactory.etech.delivery/artifactory/etech/releases/)
问题是,当我查看存储库https://artifactory.etech.delivery/artifactory/etech/releases/
时,没有任何具有此名称com.ptvag.xserver.build:xserver-parent
的依赖项,但是所有其他依赖项都在那里。
因为它只是关于工件的描述,所以有一种方法可以告诉Maven忽略它。所有带有该描述的依赖项都在我的.m2
中,但是命令mvn clean install
由于此错误而失败。
构建在2天前通过,但是我试图将项目从jdk8迁移到11,并且从1天开始我就面临这个问题。
相关的依赖项是:
<dependency>
<groupId>com.ptv</groupId>
<artifactId>xlocate-cxf-client</artifactId>
<version>1.20.1.3</version>
</dependency>
<dependency>
<groupId>com.ptv</groupId>
<artifactId>xroute-cxf-client</artifactId>
<version>1.20.1.3</version>
</dependency>
<dependency>
<groupId>com.ptv</groupId>
<artifactId>xtour-cxf-client</artifactId>
<version>1.20.1.3</version>
</dependency>
如您所见,这些依赖项中的groupId
是com.ptv
,但大约com.ptvag
除外。我有点困惑,因为在存储库中没有com.ptvag
groupId。
编辑
现在我不明白为什么Maven会尝试下载它。
感谢您的帮助。
答案 0 :(得分:0)
您可以像这样排除依赖项:
<project>
...
<dependencies>
<dependency>
<groupId>com.etech.zws</groupId>
<artifactId>zws-consumer</artifactId>
<exclusions>
<exclusion>
<groupId>com.ptvag.xserver.build</groupId>
<artifactId>xserver-parent</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
但是,如果maven试图解决依赖关系,那么构建/项目的某些部分最有可能需要它。
您应该以某种方式获得com.ptvag.xserver.build:xserver-parent:pom:1.20.1.0
。如果它不在您的存储库中,那么如果您有pom.xml
mvn install
手动安装它。
答案 1 :(得分:0)
您可能缺少一个依赖项的父pom。没有此父pom,就不可能构建所有传递依赖项的树(父pom可能包含依赖项或dependencyManagement条目)。因此构建无法正常工作。
工件com.ptv:xlocate-cxf-client:jar:1.20.1.3
是项目的(传递)依赖项。如果描述的POM是该项目的父项目,请看那里。如果是这样,则在构建时需要它。