我有一個Maven程序集插件的問題。使用Maven程序集合並屬性文件
我有一個使用幾個罐子的maven項目。每個jar包含配置文件。 通過另一個項目,我使用Maven Assembly插件將所有配置組裝到獨特的jar中。
所有工作正常,但不幸的是,兩個文件是相同的名稱,第二個覆蓋第一個。
我不能告訴maven合併兩個文件而不是覆蓋。
有人知道如何做到這一點?
謝謝。
我有一個Maven程序集插件的問題。使用Maven程序集合並屬性文件
我有一個使用幾個罐子的maven項目。每個jar包含配置文件。 通過另一個項目,我使用Maven Assembly插件將所有配置組裝到獨特的jar中。
所有工作正常,但不幸的是,兩個文件是相同的名稱,第二個覆蓋第一個。
我不能告訴maven合併兩個文件而不是覆蓋。
有人知道如何做到這一點?
謝謝。
它不正是你所尋找的,但我會用http://maven.apache.org/plugins/maven-antrun-plugin/插件來運行ant CONCAT任務http://ant.apache.org/manual/Tasks/concat.html到合併文件。我會在prepare-package階段運行maven-antrun。
您可能會嘗試重命名第一個文件,然後合併這兩個文件。
這裏是計算器一個主題,在這樣的文件的重命名爲documentated: Renaming resources in Maven
好吧,我可以重命名文件,但如何合併它之後呢?如果可能,使用程序集插件。 – Kiva 2011-04-08 17:21:32
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>
基於Skarab的答案,這裏是我以前使用maven-antrun-plugin來解決這個問題的代碼:
<project>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>prepare-package</phase>
<configuration>
<target>
<concat destfile="${project.build.directory}/setup_db.sql">
<fileset file="${project.basedir}/src/main/resources/db/sql_one/*.sql" />
<fileset file="${project.basedir}/src/main/resources/db/sql_another/*.sql" />
</concat>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
</build>
謝謝,它可以很好地使用這個插件。我只想用maven組裝,但似乎不可能。 – Kiva 2011-04-11 09:19:36