Это <build>
тег от моего старого POM, который работал:Maven POM мульти среды profiels
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.9</version>
<configuration>
<wtpversion>2.0</wtpversion>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-wsdl2code-maven-plugin</artifactId>
<version>1.6.2</version>
</plugin>
</plugins>
<finalName>test</finalName>
</build>
Теперь я хочу иметь 3 различные файлы api.properties для каждого этапа: прод, Dev, тест. Итак, я пошел дальше и пошел за учебниками <profile>
для maven. Это то, что я в конечном итоге с для только прод и испытательной стадии (полное удаление старого <build>
тег):
<profiles>
<profile>
<id>test</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<tasks>
<delete file="${project.build.outputDirectory}/api.prod.properties" />
<delete file="${project.build.outputDirectory}/api.dev.properties" />
<copy file="src/main/resources/api.test.properties"
tofile="${project.build.outputDirectory}/api.properties" />
</tasks>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.9</version>
<configuration>
<wtpversion>2.0</wtpversion>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-wsdl2code-maven-plugin</artifactId>
<version>1.6.2</version>
</plugin>
</plugins>
<finalName>test</finalName>
</build>
</profile>
<profile>
<id>prod</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<tasks>
<delete file="${project.build.outputDirectory}/api.test.properties" />
<delete file="${project.build.outputDirectory}/api.dev.properties" />
<copy file="src/main/resources/api.prod.properties"
tofile="${project.build.outputDirectory}/api.properties" />
</tasks>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.9</version>
<configuration>
<wtpversion>2.0</wtpversion>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-wsdl2code-maven-plugin</artifactId>
<version>1.6.2</version>
</plugin>
</plugins>
<finalName>test</finalName>
</build>
</profile>
</profiles>
Это на самом деле не работает, однако. Будет генерировать только один .war, а не 3 войны, которые я хочу (test-prod.war, test-dev.war, ...), а сгенерированная война будет содержать все 3 файла .properties, а не тот, который у него должен быть. Почему и что я могу сделать, чтобы исправить это? Я довольно новичок в maven ... Спасибо!
как вы запустите Maven сборки? При выборе всех трех профилей? Запуск их один раз для каждого профиля должен предоставить вам три разных артефакта. – Abaddon666
@ Abaddon666: Я просто запускаю maven install в своем затмении, как обычно ... Как мне запустить его «по-другому»? – Shiuyin
Я обычно запускаю maven из командной строки, которая тогда выглядела бы, например. 'mvn clean install -Ptest' для запуска тестового профиля. В противном случае вам нужно будет указать, как профили могут быть выбраны для плагина maven, который вы используете – Abaddon666