#java #maven #properties #war
Вопрос:
У меня есть проект Maven (веб-проект Java, работающий на Tomcat10), который будет объявлен ВОЙНОЙ и будет развернут на нескольких этапах. Поэтому я определил некоторые свойства для каждого этапа. Они расположены под
resources/config
и иметь следующие файлы:
- свойства приложения-разработчика
- применение-prod.свойства
- log4j2-свойства разработчика
- …
Я хочу, чтобы Maven копировал только указанные файлы при создании war-файла, для этого я определил некоторые Build-Profiles
из них в своем pom.xml
, например:
<profile>
<id>dev</id>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<delete dir="${project.build.finalName}/config/"/>
<!-- Log4j Configuration -->
<copy file="src/main/resources/config/log4j2-dev.properties"
tofile="${project.build.finalName}/log4j2.properties"/>
<!-- Application Properties -->
<copy file="src/main/resources/config/application-dev.properties" tofile="${project.build.finalName}/config/application.properties"/> </tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
Во время выполнения mvn package
файлы копируются по правильному пути (например target/classes/config/
, — хотя и не в файл war). У этого по-прежнему есть все файлы свойств в папке WEB-INF (например, как указано выше)…
Плагин war определяется следующим образом:
<build>
<finalName>${project.name}</finalName>
<sourceDirectory>src/main/java</sourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>src/main/webapp/META-INF</directory>
<filtering>true</filtering>
<targetPath>META-INF</targetPath>
</resource>
<resource>
<directory>src/main/webapp/WEB-INF</directory>
<filtering>true</filtering>
<targetPath>WEB-INF</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
What do I need to change to get my designated property-files (according to the defined task in the build-profile) into the WAR assembled through Maven’s war plugin?