pom配置继承-Maven surefire插件

时间:2019-01-13 09:58:47

标签: java junit pom.xml maven-surefire-plugin parent-pom

我有一个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 (第二级)pom是:

<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>

最后,(第三级)其中实际包含测试类的项目的pom of:

<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>

我的问题是-poms的这种结构是否允许从顶部到底部pom的配置继承?我的意思是,如果我在 maven-sirefure-plugin 的第一个pom中具有 parallel 配置-它将在 first_module 下的测试类中生效>并在 my_project 下?

1 个答案:

答案 0 :(得分:1)

在父母的pom中使用pluginManagement标签。基本上,import {Navigation} from 'react-native-navigation' import Screen1 from './my_screens/Screen1' import Screen2 from './my_screens/Screen2' Navigation.registerComponent('my.Screen1',()=> Screen1); Navigation.registerComponent('my.Screen2',()=> Screen2); Navigation.startTabBasedApp({tabs:[ {label:'One', screen: 'my.Screen1', icon: require('./my_resources/img/tools.png'), selectedIcon: require('./my_resources/img/tools.png'), title:'Screen1' }, {label:'Two', screen: 'my.Screen2', icon: require('./my_resources/img/tools.png'), selectedIcon: require('./my_resources/img/tools.png'), title:'Screen2' }, ] }); 定义了将由构建中的模块继承的插件的设置:

<pluginManagement/>

然后,在儿童pom中:

<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>

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