dependencies - 如果我跳过正在运行的测试,我可以将 Maven 配置为忽略 "test"范围的依赖项吗?

标签 dependencies maven-3 dependency-management maven-release-plugin

我正在使用 Maven 3.2.2。在我的一个子模块中,我有这种依赖性……

    <dependency>
        <groupId>org.mainco.subco</groupId>
        <artifactId>core</artifactId>
        <version>${project.parent.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
    </dependency>

如果我指定“-DskipTests”(或其他一些跳过测试选项),有没有办法让 Maven 在运行我的发布插件时忽略这种依赖关系?这是我的发布插件目标……
-Darguments="-DskipTests -P prod -Dcloudbees" -Dresume=false release:prepare release:perform

我意识到我可以解决构建该依赖项并准备就绪的问题,但是当我不打算运行任何测试时,这个问题专门涉及 Maven 忽略范围为“测试”的依赖项。

谢谢, - 戴夫

最佳答案

在 Maven 开始执行目标之前,它会创建一个构建计划。无论范围如何,它都会遍历所有依赖项。但是,您可以使用由属性触发的配置文件来欺骗它。请注意,配置文件经常用于错误的原因(我注意到 prod-profile,就是这样一个例子:配置不属于工件。这是另一个讨论,并且有足够的线程)。

在这种情况下:

<profile>
  <activation>
    <property>skipTests</property>
    <value>!true<property>
  </activation>
  <dependencies>
  <!-- your test-scoped dependency -->
  </dependencies>
</profile>

所以是的,它可以,但最好有这个依赖项可用。如果其他人检查此代码并尝试构建它,默认情况下它会失败,对吗?这不是用户所期望的。

关于dependencies - 如果我跳过正在运行的测试,我可以将 Maven 配置为忽略 "test"范围的依赖项吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30108053/

相关文章:

android - 即使在添加依赖项后也无法解析符号 : 'HttpClient' ,

maven - maven pom 的存储库元素中启用(快照、发布)标签有什么用?

java - 项目依赖和其他依赖之间有什么区别

node.js - 我如何为 npm 安装计时?

java - 为什么Struts 2依赖于springframework?

grails - Grails:刷新依赖项

c++ - 如何实现 C/C++ 源代码的依赖关系检查

java - Google App Engine JPA 2.0 - java.lang.ClassNotFoundException : javax. persistence.spi.ProviderUtil

maven - 增加 IntelliJ java 堆大小

maven - 如何防止 Maven 每次都下载 Artifact ?