View on GitHub

blog

Строительство для разных сред

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

Примечание:

В этом примере предполагается использование стандартного макета каталога.

pom.xml
src/
  main/
    java/
    resources/
  test/
    java/

В src/main/resources есть три файла:

В дескрипторе проекта вам необходимо настроить различные профили. Здесь показан только тестовый профиль.

<profiles>
<profile>
    <id>test</id>
    <build>
    <plugins>
        <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
            <execution>
            <phase>test</phase>
            <goals>
                <goal>run</goal>
            </goals>
            <configuration>
                <tasks>
                <delete file="${project.build.outputDirectory}/environment.properties"/>
                <copy file="src/main/resources/environment.test.properties"
                        tofile="${project.build.outputDirectory}/environment.properties"/>
                </tasks>
            </configuration>
            </execution>
        </executions>
        </plugin>
        <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
            <skip>true</skip>
        </configuration>
        </plugin>
        <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <executions>
            <execution>
            <phase>package</phase>
            <goals>
                <goal>jar</goal>
            </goals>
            <configuration>
                <classifier>test</classifier>
            </configuration>
            </execution>
        </executions>
        </plugin>
    </plugins>
    </build>
</profile>

.. Other profiles go here ..

</profiles>

В этом фрагменте настраиваются три вещи:

Чтобы активировать этот профиль, выполните mvn -Ptest install, и Maven выполнит шаги в профиле в дополнение к обычным шагам. Из этой сборки вы получите два артефакта: «foo-1.0.jar» и «foo-1.0-test.jar». Эти два jar будут идентичными.

Предостережения