maven включает разные файлы для разных профилей - PullRequest
2 голосов
/ 20 февраля 2012

Я хочу иметь разные конфигурационные файлы пружин для разных профилей maven. Фильтрация близка к тому, что я хочу, но она изменяет только свойства внутри одного файла.То, что я хочу, это включить / исключить и переименовать файлы в зависимости от профиля.Например, у меня есть файлы profile1-config.xml и profile2-config.xml.Для сборки profile1 profile1-config.xml переименовывается в config.xml, а profile2-config.xml исключается из сборки.Для сборки profile2 profile2-config.xml переименовывается в config.xml, а profile1-config.xml исключается из сборки.Возможно ли это в Maven?

Ответы [ 2 ]

0 голосов
/ 12 августа 2016

Общая идея заключается в использовании цели copy-resources в maven-resources-plugin.

Вы можете создать папку для хранения всех ваших профилей, например:

profiles
    |-profile1
    |-profile2

И в вашем pom.xml вы можете иметь такие настройки:

<profiles>
        <profile>
            <id>profile1</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-resources-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>copy-resources</id>
                                <phase>validate</phase>
                                <goals>
                                    <goal>copy-resources</goal>
                                </goals>
                                <configuration>
                                    <outputDirectory>${basedir}/target/classes</outputDirectory>
                                    <resources>
                                        <resource>
                                            <directory>${basedir}/profiles/profile1</directory>
                                            <filtering>false</filtering>
                                        </resource>
                                    </resources>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>profile2</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-resources-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>copy-resources</id>
                                <phase>validate</phase>
                                <goals>
                                    <goal>copy-resources</goal>
                                </goals>
                                <configuration>
                                    <outputDirectory>${basedir}/target/classes</outputDirectory>
                                    <resources>
                                        <resource>
                                            <directory>${basedir}/profiles/profile2</directory>
                                            <filtering>false</filtering>
                                        </resource>
                                    </resources>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

0 голосов
/ 20 февраля 2012

Ваша идея не будет работать таким образом, но если вы ее измените, она будет действовать следующим образом:

Скажем, вы скорее создаете папки conf для каждого профиля и высасываете эти файлы.

src/main/conf
  |-/profile1/conf.xml
  |-/profile2/conf.xml

и пр.Сконфигурируйте свой профиль в этих файлах.Если вы намереваетесь развернуть другую конфигурацию для некоторого сервера, лучше всего работать с дополнительными модулями и военными наложениями, потому что вы не можете развернуть сразу несколько конфигов одного и того же проекта модуля в Nexus или локальном репо.Более того, учтите, что многие профили будут загромождать ваш pom и усложнять сборку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...