我可以使用' include'选项(或类似的东西)将任何属性文件包含到另一个属性文件中?
所以,我有两个属性文件: 1." firstPropertiesFile"其中包含下一个字符串:
include = secondPropertiesFile#it第二个属性文件的路径
和
" secondPropertiesFile"其中包含下一个字符串:
key = value
此外,我有资源文件(将按资源过滤的文件:资源目标)包含:
$ {键}
当我调用资源:资源目标时,我期待接下来的步骤:
参考资源插件查看firstPropertiesFile文件并查看它包含引用另一个属性文件。
插件转到引用(第二个属性文件的路径)并查看必要的键并获取值(在我们的case-value中)。
但这种方式在maven中不起作用。你能告诉我如何实现这个目标吗?
P.S。 Apache Commons配置支持此选项:http://commons.apache.org/proper/commons-configuration/userguide/howto_properties.html ("包括"章节)。
答案 0 :(得分:1)
标准Java属性没有内置任何内容来执行此操作,如果需要,您需要对其进行编码或使用已经执行此操作的库。
答案 1 :(得分:1)
在Maven中,你可以实现非常相似的Properties Maven Plugin。
我不支持您期望的 include 语义,但它可以组成来自多个源的属性文件。示例下面将合并两个属性文件,您可以从allprops.properties访问这些文件。当必须在不同的系统或环境中使用不同的属性文件集时,这尤其有用。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>${properties-maven-plugin.version}</version>
<executions>
<execution>
<id>read-properties</id>
<phase>generate-resources</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>firstPropertiesFile.properties</file>
<file>secondPropertiesFile.properties</file>
</files>
</configuration>
</execution>
<execution>
<id>write-all-properties</id>
<phase>generate-resources</phase>
<goals>
<goal>write-project-properties</goal>
</goals>
<configuration>
<outputFile>${project.build.directory}/allprops.properties</outputFile>
</configuration>
</execution>
</executions>
</plugin>
</plugins>