在我的Web应用程序中,我有一些.properties
和.xml
文件,它们已经从我的resources
目录中处理并复制到classes
中。
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
我在pom.xml
中定义了一个变量:
<stage>Development</stage>
现在,我想根据此变量复制一些资源。基本上:
$stage
== Development
->复制
resources/logging-development.properties
至
classes/logging.properties
$stage
== Production
->复制
resources/logging-production.properties
至
classes/logging.properties
代替。如何在我的pom.xml
中达到目标?
(注意-如果可能,我正在寻找一种解决方案,该解决方案不需要修改我的IDE调用maven的方式,因此只需要修改pom.xml等)
注意:这些是从一种环境更改为另一种环境的唯一文件
答案 0 :(得分:0)
多亏了注释中的指针,我才能够做到这一点。这很简单,但是有效。它只是将所需文件复制到正确的文件名,然后照常移动。不需要的文件将从移动中排除。我将我的解决方案留在这里,以防它可以帮助其他人:
<properties>
<stage>Development</stage>
...
<plugin>
<groupId>com.coderplus.maven.plugins</groupId>
<artifactId>copy-rename-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<id>copy-file</id>
<phase>generate-sources</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<sourceFile>src/main/resources/logging-${stage}.properties</sourceFile>
<destinationFile>src/main/resources/logging.properties</destinationFile>
</configuration>
</execution>
</executions>
</plugin>
....
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>logging-Development.properties</exclude>
<exclude>logging-Production.properties</exclude>
</excludes>
</resource>
....