为了账号安全,请及时绑定邮箱和手机立即绑定

Maven如何忽略工件描述符?

Maven如何忽略工件描述符?

慕码人8056858 2022-06-30 17:50:32
有没有办法指示 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,但例外是 about com.ptvag。我有点困惑,因为在存储库中没有com.ptvaggroupId。
查看完整描述

2 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

您可能缺少一个依赖项的父 pom。如果没有这个父 pom,就不可能构建所有传递依赖的树(父 pom 可能包含依赖项或 dependencyManagement 条目)。所以构建不起作用。

工件com.ptv:xlocate-cxf-client:jar:1.20.1.3是项目的(传递)依赖项。看看那里,如果描述的 POM 是这个项目的父级。如果是这样,您需要它来构建。


查看完整回答
反对 回复 2022-06-30
?
精慕HU

TA贡献1845条经验 获得超8个赞

您可以像这样排除依赖项:


    <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. 如果它不在您的存储库中,您可以手动安装它,mvn install如果您有 pom.xml


查看完整回答
反对 回复 2022-06-30
  • 2 回答
  • 0 关注
  • 89 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信