我正在使用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忽略作为“test”的依赖关系。
谢谢, - 戴夫
答案 0 :(得分:3)
在Maven开始执行目标之前,它会创建一个构建计划。无论范围如何,它都会经历所有依赖关系。但是,您可以使用由属性触发的配置文件来欺骗它。请注意,配置文件通常用于错误的原因(我注意到了prod-profile,这就是一个例子:配置不属于工件。这是另一个讨论,并且有足够的线程关于它。)
在这种情况下:
<profile>
<activation>
<property>skipTests</property>
<value>!true<property>
</activation>
<dependencies>
<!-- your test-scoped dependency -->
</dependencies>
</profile>
所以它是可以的,但最好还是可以使用这种依赖。如果其他人检查了这段代码并尝试构建它,默认情况下它会失败,对吧?这不是用户的期望。