我的Maven程序集插件有问题。
我有一个使用多个jar的Maven项目。每个jar都包含配置文件。在另一个项目中,我使用maven组装插件将所有配置组装到唯一的jar中。
一切正常,但不幸的是,两个文件的名称相同,第二个文件覆盖了第一个文件。
我没有实现告诉Maven合并这两个文件而不是覆盖。
有人知道该怎么做吗?
谢谢。
它并不是您要找的东西,但是我会使用http://maven.apache.org/plugins/maven-antrun-plugin/插件来运行ant concat任务http://ant.apache.org/manual/ Tasks / concat.html合并文件。我将在prepare-package阶段运行maven-antrun 。
将maven-shade-plugin与AppendingTransformer结合使用即可完成您想要的操作。
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>