Java 如何过滤Maven中依赖项提供的资源?
假设我有一个名为com.example:awesome的Java项目,它有一个名为com.external:awesome库的依赖项 如果这个很棒的库有configuration.xml之类的资源,那么在我在项目代码中使用它之前,如何过滤该资源,以便正确替换Maven属性占位符 例如,Java 如何过滤Maven中依赖项提供的资源?,java,maven,Java,Maven,假设我有一个名为com.example:awesome的Java项目,它有一个名为com.external:awesome库的依赖项 如果这个很棒的库有configuration.xml之类的资源,那么在我在项目代码中使用它之前,如何过滤该资源,以便正确替换Maven属性占位符 例如,之类的内容需要更改为 假设: awesome库位于该项目外部,不是由 我 我不知道应用程序中使用的变量占位符 .xml文件。我只知道它们是由Maven定义的。 让我们以项目元数据为例,例如${artifact}
之类的内容需要更改为
假设:
- awesome库位于该项目外部,不是由 我
- 我不知道应用程序中使用的变量占位符 .xml文件。我只知道它们是由Maven定义的。 让我们以项目元数据为例,例如${artifact}
<properties>
<some.constant>123</some.constant>
</properties>
<build>
<resources>
<resource>
<directory>src/main/resources/META-INF</directory>
<targetPath>META-INF</targetPath>
<filtering>true</filtering>
<includes>
<include>**/my-configuration.xml</include>
</includes>
</resource>
src/main/resources/META-INF
META-INF
真的
**/my-configuration.xml
maven clean install
${project.build.directory}/dependency
(如果需要可以更改)
然后,使用以下任一方法:
- 并在该插件的执行中定义筛选,并将其配置为指向
${project.build.directory}/dependency
- 只需在POM的
部分中放置build
元素,并将其指向resources
,并进行适当的筛选,可能会更简单。不过,如果您还需要标准${project.build.directory}/dependency
,您也需要将其放在那里src/main/resources
${some.constant}
<build>
<resources>
<resource>
<directory>src/main/resources/META-INF</directory>
<targetPath>META-INF</targetPath>
<filtering>true</filtering>
<includes>
<include>**/my-configuration.xml</include>
</includes>
</resource>