tangguo

使用Maven程序集合并属性文件

java

我的Maven程序集插件有问题。

我有一个使用多个jar的Maven项目。每个jar都包含配置文件。在另一个项目中,我使用maven组装插件将所有配置组装到唯一的jar中。

一切正常,但不幸的是,两个文件的名称相同,第二个文件覆盖了第一个文件。

我没有实现告诉Maven合并这两个文件而不是覆盖。

有人知道该怎么做吗?

谢谢。


阅读 396

收藏
2020-10-21

共2个答案

小编典典

它并不是您要找的东西,但是我会使用http://maven.apache.org/plugins/maven-antrun-plugin/插件来运行ant concat任务http://ant.apache.org/manual/ Tasks / concat.html合并文件。我将在prepare-package阶段运行maven-antrun 。

2020-10-21
小编典典

maven-shade-pluginAppendingTransformer结合使用即可完成您想要的操作。

我们使用它将来自两个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>
2020-10-21