我正在使用Maven 2.2.1并构建我使用此命令的项目
mvn clean install -Dmaven.test.skip=true
Run Code Online (Sandbox Code Playgroud)
但是,构建失败,说它无法找到其中一个工件.但是,当我使用时:
mvn clean install -DskipTests
Run Code Online (Sandbox Code Playgroud)
一切正常.
到目前为止,我一直认为这两个命令是等价的.但是,这个链接似乎表明-Dmaven.test.skip=true也会跳过编译测试用例.
但是,这仍然没有向我解释为什么一个命令正在工作而另一个命令不起作用.如果有人请向我解释,请感谢.
Mur*_*nik 98
如您所述,-Dmaven.test.skip=true跳过编译测试.更重要的是,它跳过了构建测试工件.大型项目的常见做法是在同一项目中的模块之间共享测试实用程序和基类.
这是通过让模块需要test-jar以前构建的模块来实现的:
<dependency>
<groupId>org.myproject.mygroup</groupId>
<artifactId>common</artifactId>
<version>1.0</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
如果指定-Dmaven.test.skip=true(或简单地-Dmaven.test.skip),test-jar则不构建s,并且依赖于它们的任何模块将无法构建.
相比之下,当您使用时-DskipTests,Maven不会运行测试,但它会编译它们并构建测试jar,使其可用于后续模块.
gil*_*lwo 46
为了构建软件包,我对测试有一些相互依赖性.
以下命令设法覆盖测试工件的需要以完成目标:
mvn -DskipTests=true package
Run Code Online (Sandbox Code Playgroud)
Nir*_*edi 20
要在 maven 全新安装期间跳过测试用例,我在以下命令中使用了 -DskipTests 参数
mvn clean install -DskipTests
Run Code Online (Sandbox Code Playgroud)
进入终端窗口
vts*_*mis 14
参数 -DskipTests 可能不起作用,具体取决于您的 surefire-plugin 版本。
您可以使用“-Dmaven.test.skip.exec”代替“-DskipTests”
Ste*_*vra 13
我可以给你一个例子,结果有同样的问题,但它可能不会给你一个问题的答案.(另外,在这个例子中,我正在使用我的Maven 3知识,这可能不适用于Maven 2.)
在多模块Maven项目(包括模块A和B,其中B取决于A),你还可以添加一个测试依赖于A从B.
此依赖关系可能如下所示:
<dependency>
<groupId>com.foo</groupId>
<artifactId>A</artifactId>
<type>test-jar</type> <!-- I'm not sure if there is such a thing in Maven 2, but there is definitely a way to achieve such dependency in Maven 2. -->
<scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
(有关更多信息,请参阅https://maven.apache.org/guides/mini/guide-attached-tests.html)
请注意,该项目A使用分类器生成辅助工件,tests其中包含测试类和测试资源.
如果使用构建项目-Dmaven.test.skip=true,只要在本地存储库或外部存储库中找不到测试工件,就会出现依赖项解析错误.原因是测试类既未编译也未生成tests工件.
但是,如果你运行构建-DskipTests你的tests神器会产生(尽管测试将无法运行)和依赖将会得到解决.
为了获得最快的构建,请跳过编译测试文件和运行测试:
mvn install -Dmaven.test.skip
Run Code Online (Sandbox Code Playgroud)
...您还可以使用 maven.test.skip 属性来跳过编译测试。maven.test.skip 受到 Surefire、Failsafe 和编译器插件的认可。
更多加快安装速度的方法可以在“如何使 Maven 构建更快? ”问题的答案中找到。
在 Maven 编译期间,您可以通过在 pom.xml 中添加以下插件来跳过测试执行
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
209986 次 |
| 最近记录: |