将属性文件与 Maven 程序集合并
2022-09-04 02:17:31
我有一个maven汇编插件的问题。
我有一个使用几个罐子的maven项目。每个 jar 都包含配置文件。在另一个项目中,我使用maven组装插件将所有配置组装在独特的jar中。
一切正常,但不幸的是,两个文件是相同的名称,第二个文件覆盖了第一个。
我没有达到告诉maven合并两个文件而不是覆盖。
有人知道如何做到这一点吗?
谢谢。
我有一个maven汇编插件的问题。
我有一个使用几个罐子的maven项目。每个 jar 都包含配置文件。在另一个项目中,我使用maven组装插件将所有配置组装在独特的jar中。
一切正常,但不幸的是,两个文件是相同的名称,第二个文件覆盖了第一个。
我没有达到告诉maven合并两个文件而不是覆盖。
有人知道如何做到这一点吗?
谢谢。
maven-shade-plugin 与 AppendingTransformer 相结合,应该可以做你想做的事。
我们使用它将两个 zip 项目(定义为单独的 maven 模块)的属性文件合并到一个 zip 文件中。这将从两个模块创建文件和目录的超集,并将指定的属性文件合并在一起。我们还将要合并的模块定义为执行合并的 maven 模块的依赖项。
像这样的东西应该可以解决问题:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filters>
<filter>
<artifact>groupname:artifactname</artifact>
<includes>
<include>**/*</include>
</includes>
</filter>
</filters>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>propertyfiletomerge.properties</resource>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
它不完全是您要寻找的,但是我会使用 http://maven.apache.org/plugins/maven-antrun-plugin/ 插件来运行蚂蚁concat任务 http://ant.apache.org/manual/Tasks/concat.html 合并文件。我会在准备包阶段运行 maven-antrun。