gpt4 book ai didi

java - Maven:添加同一 Artifact 的旧版本作为依赖项

转载 作者:行者123 更新时间:2023-12-01 10:44:53 25 4
gpt4 key购买 nike

是否可以添加同一 Artifact 的旧版本作为依赖项?这是一个例子:

<groupId>edu.illinois.cs.cogcomp</groupId>
<artifactId>illinois-pos</artifactId>
<version>2.0.3</version>

<dependencies>
<dependency>
<groupId>edu.illinois.cs.cogcomp</groupId>
<artifactId>illinois-pos</artifactId>
<version>2.0.2</version>
<classifier>model</classifier>
</dependency>
</dependencies>

如果不行的话,有什么办法可以让它发挥作用吗?

最佳答案

根据您的评论(以及进一步的澄清和需求),我建议使用 Maven multi-module项目结构如下:

  • 使用最新依赖项提供代码的模块,不提供任何测试
  • 仅提供测试用例并使用旧依赖项的模块,因此使用另一个依赖项对相关代码运行测试。为了使其工作,测试模块必须依赖于代码模块,并显式地重新声明测试所需的依赖版本。

因此,您将拥有一个聚合器 pom(空项目,没有源,没有测试),其中包含 packaging pom并定义两个模块(即代码模块、测试模块)。您将继续处理代码模块,然后在测试模块上提供测试用例,您还可以在其中覆盖和重新定义任何所需的依赖项。

因此,作为同一构建(在聚合器项目上)的一部分,您可以根据需要构建两个模块。

或者,保留单层模块,您可以定义 profile这将重新定义所需的依赖项(使用不同的版本)并运行您的测试用例。这也意味着:

  • 作为默认构建的一部分,您需要跳过测试,将 Maven Surefire 插件配置为 skip tests通过具有默认值 <skip>${skip.tests}</skip> 的属性(即 true )
  • 然后,您需要配置您的个人资料以更改 skip.tests 的值属性至false并重新定义依赖关系

使用第二种方法,您需要执行构建两次:第一次构建将正常运行但跳过测试( mvn clean install ),第二次构建您将激活配置文件并从测试阶段开始( mvn test -Pprofile-name ) .

绝对更推荐第一种方法(多模块项目)。

关于java - Maven:添加同一 Artifact 的旧版本作为依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34246915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com