【问题标题】:Skipping Maven Test Dependency跳过 Maven 测试依赖
【发布时间】:2011-11-02 18:26:32
【问题描述】:

我正在开发一个使用 maven 进行构建的项目。我想要做的是跳过测试依赖。基本上在我的 Maven 存储库中不存在工件的情况下运行 Maven 构建。

例如

<artifactId>example</artifactId>
<scope>test</scope>

这是来自我项目的 pom 文件,我必须在没有工件示例的情况下构建我的项目。

我已搜索解决方案,例如使用“-DskipTests=true”或“-Dmaven.test.skip=true”。在我的情况下,他们确实跳过了测试的运行,但它仍然抱怨缺少依赖文件。

有谁知道无需在 maven 存储库中有测试工件即可运行 maven build 的方法?

谢谢。

【问题讨论】:

  • +1。有同样的问题。有没有办法从命令行显式排除单个测试依赖项(因为我这里只有一个会引起真正麻烦的)?

标签: maven dependencies


【解决方案1】:

https://issues.apache.org/jira/browse/MNG-4192。我认为解决它的唯一方法是将测试范围的依赖项移动到 Maven 配置文件中。

这是一个例子:

    <profile>
      <id>test-with-extra-dependency</id>
      <dependencies>
        <dependency>
          <groupId>org.example.groupid</groupId>
          <artifactId>artifact-id</artifactId>
          <version>0.0.1-SNAPSHOT</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </profile>

您现在应该能够在没有测试的情况下运行构建:

mvn clean install -Dmaven.test.skip=true -DskipTests=true

之后,您可以在启用配置文件的情况下运行测试:

mvn test --activate-profiles test-with-extra-dependency

我不建议这样做,但这在当前模块和测试依赖项之间存在循环依赖关系的情况下很有用,即您可以构建模块,然后使用构建结果构建测试依赖项,最后进行测试具有测试依赖项的模块。如果您发现自己想要这样做,尝试重构您的项目以消除循环依赖(例如,将测试移至第三个模块)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    • 2014-09-03
    • 2021-04-30
    • 2021-05-14
    • 2012-03-02
    • 1970-01-01
    • 2013-07-07
    相关资源
    最近更新 更多