POM 配置继承 - Maven Surefire 插件



我有一个Java项目,里面有3个"级别"。我的顶级 maven 目录中的 pom 看起来像这样:

<groupId>com.my_app</groupId>
<artifactId>my_app</artifactId>
<version>LATEST-SNAPSHOT</version>
<modules>
    <module>first_module</module>
    <module>second_module</module>
</modules>
...
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.22.1</version>
        <configuration>
            <parallel>classes</parallel>
            <threadCount>10</threadCount>
        </configuration>
    </plugin>
</plugins>

first_module(二级)绒球是:

<parent>
    <groupId>com.my_app</groupId>
    <artifactId>my_app</artifactId>
    <version>LATEST-SNAPSHOT</version>
</parent>
<groupId>com.my_app.first_module</groupId>
<artifactId>first_module</artifactId>
<version>LATEST-SNAPSHOT</version>
...
<plugins>
    <plugin>
        <version>2.22.1</version>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
    </plugin>
</plugins>

最后,(第 3 级)实际包含测试类的项目的 pom:

<parent>
    <artifactId>first_module</artifactId>
    <groupId>com.my_app.first_module</groupId>
    <version>LATEST-SNAPSHOT</version>
</parent>
<artifactId>my_project</artifactId>
...
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.22.1</version>
    </plugin>
</plugins>

我的问题是 - 这种 pom 结构是否允许从顶部到底部的配置继承?我的意思是,如果我在 maven-sirefure-插件的第一个 pom 中有并行配置 - 它会在 first_modulemy_project 下的测试类中生效吗?

在父项的 pom 中使用pluginManagement标签。基本上,<pluginManagement/>定义了将由构建中的模块继承的插件的设置:

<pluginManagement>
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.22.1</version>
        <configuration>
            <parallel>classes</parallel>
            <threadCount>10</threadCount>
        </configuration>
    </plugin>
</plugins>
</pluginManagement>

然后,在孩子们的pom中:

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
    </plugin>
</plugins>

无需指定版本,因为它继承自具有所有配置的父级。

相关内容

  • 没有找到相关文章

最新更新