Мне нужно создать несколько пакетов для одного приложения, созданного Maven. Сначала я использовать -Denv
для создания различных пакетов с аргументами Maven, и я использую ресурс для включения/исключения ресурсов:генерировать несколько артефактов в maven
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/${env}.ini></include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
Тогда я могу использовать
mvn clean package -Denv=dev
mvn clean package -Denv=prod1
mvn clean package -Denv=prod2
mvn clean package -Denv=prod3
.....
Однако, кажется, что различные пакеты имеют которые будут упакованы один за другим, что означает, что Maven потратит слишком много времени на сборку всех пакетов, поскольку для развертывания приложения у нас есть почти 22 разных среды.
Кроме того, каждый mvn .. package
почти генерирует такой же результат, как классы, ресурсы, за исключением некоторых определенных ресурсов, таких как {$env}.ini
. Я думаю, что это лишний раз запустить compile
снова и снова.
Было бы лучше, если бы мы собираем все источники и ресурсы в целевой каталог, а затем генерировать различные пакеты соответственно, так что я думал, что maven-assembly-plugin
, как правило, мы будем использовать его как это:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>/src/main/assembly/env.xml</descriptor>
<descriptor>/src/main/assembly/prod1.xml</descriptor>
<descriptor>/src/main/assembly/prod2.xml</descriptor>
......
</descriptors>
</configuration>
</plugin>
Тогда мы должны создать 22 дескриптора, однако эти дескрипторы слишком похожи друг на друга, что означает, что слишком много повторной конфигурации, и это будет сложно, если я хочу внести некоторые общие изменения во все дескрипторы.
Итак, интересно, есть ли хорошая альтернатива для решения таких требований?
Этот плагин потрясающий! Благодаря.. – hguser