您需要複製文件server.xml
多次,在assembly.xml
中聲明多次。下面是一個示例裝配描述:
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
<id>server</id>
<formats>
<format>zip</format>
</formats>
<fileSets>
<fileSet>
<directory>src/main/server/app1</directory>
<outputDirectory>app1</outputDirectory>
</fileSet>
</fileSets>
<files>
<file>
<source>src/main/common/server.xml</source>
<outputDirectory>app1</outputDirectory>
</file>
</files>
<!-- same configuration for app2 and 3 -->
</assembly>
如果你想這樣做,在一個循環中(假設你有50個應用程序文件夾),也可以使用Velocity template生成正確的Maven的裝配描述符。調用Velocity完成velocity-maven-plugin
。
樣品Velocity模板(保存爲src/main/common/assembly-server.xml.vm
):
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
<id>server</id>
<formats>
<format>zip</format>
</formats>
<fileSets>
#foreach($i in [1..50])
<fileSet>
<directory>src/main/server/app$i</directory>
<outputDirectory>app$i</outputDirectory>
</fileSet>
#end
</fileSets>
<files>
#foreach($i in [1..50])
<file>
<source>src/main/common/server.xml</source>
<outputDirectory>app$i</outputDirectory>
</file>
#end
</files>
</assembly>
插件配置:
<plugin>
<groupId>com.googlecode.velocity-maven-plugin</groupId>
<artifactId>velocity-maven-plugin</artifactId>
<version>1.1.0</version>
<executions>
<execution>
<id>generate-server-assembly<id>
<phase>generate-resources</phase>
<goals>
<goal>velocity</goal>
<goals>
<execution>
</executions>
<configuration>
<templateFiles>
<directory>/src/main/common</directory>
<includes>
<include>assembly-server.xml.vm</include>
</includes>
</templateFiles>
<removeExtension>.vm</removeExtension>
</configuration>
</plugin>
這將產生target
下assembly-server.xml
文件,你可以作爲一個裝配描述符maven-assembly-plugin
使用。
循環沒有簡單的概念嗎? – user2230605
@ user2230605不是直接。爲了解決這個問題,我使用了一個Velocity模板來生成正確的Maven程序集。如果你想要一個示例配置,我會更新我的答案。 – Tunaki
謝謝,請更新。我想用它很容易在那裏寫插件。 – user2230605