наследование pom config - плагин maven surefire - PullRequest
0 голосов
/ 13 января 2019

У меня есть проект Java, в котором есть 3 "уровня". Пом в моей главной директории Maven выглядит так:

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

и, наконец, ( 3-й уровень ) часть проекта, в котором фактически есть тестовые классы:

<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 - она ​​вступит в силу в тестовых классах в first_module и ниже my_project ?

1 Ответ

0 голосов
/ 13 января 2019

Используйте тег 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>

Тогда в детском пом:

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

Вам не нужно указывать версию, поскольку она наследуется от родителя со всей конфигурацией.

...