Maven Создайте несколько профилей за один раз - программирование
Подтвердить что ты не робот

Maven Создайте несколько профилей за один раз

Наша политика состоит только в том, чтобы построить 1 разворачивающуюся банку. все конфигурации, зависящие от среды, хранятся отдельно, и мы собираем их все вместе одновременно. поэтому в нашем текущем процессе Ant у нас есть файл свойств для каждой среды, цикл над ними и создание набора файлов конфигурации для каждой среды.

В моем текущем POM XML я могу построить только один профиль, предоставленный в командной строке. Можно ли достичь через Maven?

Вот некоторые из соответствующих частей POM.xml

<!-- Define profiles here and make DEV as default profile -->
<profiles>

    <!-- dev Profile -->
    <profile>
        <id>dev</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>

    <!-- qa Profile -->
    <profile>
        <id>qa</id>
        <properties>
            <env>qa</env>
        </properties>
    </profile>

    <!-- prod Profile -->
    <profile>
        <id>prod</id>
        <properties>
            <env>prod</env>
        </properties>
    </profile>

</profiles>
...


<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.4.3</version>

    <executions>
        <execution>

            <phase>validate</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>

            <configuration>

                <filters>
                    <filter>env/${env}.properties</filter>
                </filters>

                <outputDirectory>${project.build.directory}/config/${env}
                </outputDirectory>
                <resources>
                    <resource>

                        <filtering>true</filtering>

                        <directory>${basedir}/src/main/config/default
                        </directory>
                        <includes>
                            <include>*.xml</include>
                            <include>*.properties</include>
                        </includes>
                    </resource>

.....

Спасибо, Prabhjot

4b9b3361

Ответ 1

Maven не похож на ant. С помощью ant вы можете в основном делать то, что хотите, когда захотите это сделать. С maven существует четкий и документированный жизненный цикл сборки, и он нацелен на создание одного компонента (и, возможно, присоединение других артефактов к сборке).

Однако вы планируете создавать один компонент несколько раз, но с разными параметрами. Это не вписывается в жизненный цикл maven. Так что вам нужно будет сделать, чтобы какой-то внешний процесс выполнял итерацию и многократно вызывал maven с различными параметрами.

Классическим способом выполнения этого будет использование оболочки script, но вы также можете использовать Maven Invoker для запуска отдельного процесс из контекста Java или Maven.