我有一个带有.properties文件的父项目,该文件根据在项目上定义的配置文件进行过滤,该项目具有子项目或模块,我希望过滤后的.properties文件可用于子项目并且我可以使用java中的resourceBoundle来访问文件的属性。
我试图使用,没有运气 How to share a filter file among Maven2 modules?-> MojoHaus项目
父pom
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.data</groupId>
<artifactId>data2</artifactId>
<version>data-SNAPSHOT</version>
<packaging>pom</packaging>
<name>dataNameapp</name>
<modules>
<module>child 1</module>
<module>child 2</module>
</modules>
.....
</project>
子项目
reference parent properties in pom some code In guess
通过Java代码使用
child1 / test.java
ResourceBundle resourceBundleProperties= ResourceBundle.getBundle("parentproperties")
更新
在mi父项目中,此文件中的Extras文件被过滤,当我通过它时,我希望它更新其他内部文件属性
parent--extras/filtered.properties (file filtered)
child
--filters/filtered.properties (get from parent)
--resources/final.properties (filtered of filtered.properties)
答案 0 :(得分:1)
您可以尝试使用Maven的资源插件来copy来自父项目的文件,例如:
<project>
...
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>process-resourcesphase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/resources</outputDirectory>
<resources>
<resource>
<directory>${project.parent.basedir}/src/resources/extras</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
...
</build>
...
</project>