我有一个maven项目,我正在运行两个独立的版本。
在一个版本中,我想通过禁用其中的maven模块的jar创建来节省构建时间。(有45个maven模块)。有一个Maven-Jar-Plugin用于创建罐子。
我想在命令行有条件地禁用jar创建,也就是说,寻找类似于-Dskiptests
的东西,用于跳过单元测试,尽管默认情况下有一个surefire插件。
答案 0 :(得分:1)
maven-jar-plugin
does not provide任何跳过选项。
但是,有几种方法可以满足您的要求。
您可以跳过phase默认情况下(via default mappings)创建jar,即package
阶段,因此只需调用
mvn clean test
如果您不创建jar文件,则其他阶段没有意义:package
,install
,deploy
将无法处理任何内容。此外,根据您的集成测试策略(如果有),其他集成阶段也可能会受到影响。
或者,您可以按如下方式配置pom:
<properties>
<jar.creation>package</jar.creation>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>default-jar</id>
<phase>${jar.creation}</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
因此,默认行为仍然会提供jar创建,同时执行maven,如下所示:
mvn clean install -Djar.creation=false
反而会跳过jar的创建。
我们实际在做什么:
maven-jar-plugin
package
-Djar.creation=none
也可以。