Maven配置文件不会影响项目列表中的模块

时间:2017-07-26 18:45:06

标签: maven

为什么使用maven配置文件的运行配置不能按预期工作?为什么配置文件在参数确实按预期工作时无法跳过测试?

我有一个不按预期运行的maven运行配置(它在lib-module中运行我想要跳过的测试):
-pl common,lib-module,my-module test -PdontTestLibProfile

当我运行相同的运行配置但直接使用maven属性参数时:
-pl common,lib-module,my-module test -DdontTestLib=true跳过lib-module测试成功。

maven个人资料dontTestLibProfile位于my-module的pom中。

<artifact-id>my-module</artifact-id>
[...]
<profile>
    <id>dontTestLibProfile</id>
    <properties>
        <dontTestLib>true</dontTestLib>
    </properties>
</profile>

dontTestLib是mavenProperty,在lib-module中进行检查,如果设置为true,则不会运行集成或单元测试。

<artifactId>lib-module</artifactId>

<properties>
    <!-- Skip tests: Default is to NOT skip ==> Default is to run -->
   <doneTestLib>false</dontTestLib>
</properties>

[...]

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-failsafe-plugin</artifactId>
            <configuration>
                <!-- Skip Lib-Module Integration tests if skip is set -->
                <skipTests>${dontTestLib}</skipTests>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <!-- Skip Lib-Module Unit tests if skip is set -->
                <skipTests>${dontTestLib}</skipTests>
            </configuration>
        </plugin>
    </plugins>
</build>

可能导致此问题的一些推论问题:

  • maven配置文件的运行顺序与项目列表本身相同,不允许my-module影响之前的lib-module吗?
  • 配置文件只会影响他们自己的POM /模块,我试图超出范围吗?

0 个答案:

没有答案