我想用取决于环境配置文件(dev,prod ...)的值填充属性文件 common.properties,但我不希望将文件添加到类路径中。
我阅读了几个主题,例如 使用配置文件从属性文件中读取 Maven 变量
所以我设法用配置文件填充属性:
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>${properties-maven-plugin.version}</version>
<executions>
<execution>
<id>read-project-properties</id>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>config/common_dev.properties</file>
</files>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<build>
<resources>
<resource>
<directory>config</directory>
<filtering>true</filtering>
</resource>
...
</resources>
...
</build>
在模块中,我有一个文件夹配置,其中包含文件 common.properties 和 common_dev.properties:
common_dev.properties:
common.reception.directory.norm = PHASE1V1
common.properties:
common.reception.directory.norm = ${common.reception.directory.norm}
common.properties 很好地填充了 mvn clean install,但是 config 目录成为 Eclipse 中的源文件夹,已添加该目录的类路径条目。这是我的问题,common.properties 文件位于应用程序中,环境变量包含其路径,而不是从类路径中读取。它有效,但对项目开发人员来说很困惑。
我也尝试使用 properties-maven-plugin 的 write-project-properties 和 write-active-profile-properties 但第一个将我所有的项目属性写入文件,第二个什么都不写,因为 read-project-properties 读取属性作为项目属性而不是配置文件属性。
有没有办法做我想做的事?