Это непросто, вам нужно реализовать две части.
- получить фрагменты из другого модуля
- собрать файл xml, используя include
для 1. Вы можете использовать зависимость : распаковать mojo:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack</id>
<phase>initialize</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/snippets</outputDirectory>
<includes>snippets/*.xml</includes>
<artifactItems>
<artifactItem>
<groupId>your.app</groupId>
<artifactId>module1</artifactId>
<version>${project.version}</version>
<type>jar</type>
</artifactItem>
<artifactItem>
<groupId>your.app</groupId>
<artifactId>module2</artifactId>
<version>${project.version}</version>
<type>jar</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Теперь вы скопировали все фрагменты из module1.jar / snippets и module2.jar / snippetsк цели / фрагментам (это была самая простая часть).
Для 2. вам нужно выбрать шаблонизатор и создать основной класс для сборки вашего шаблона с ним, вероятно, используя exec: java mojo что-то вроде этого:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.yourcompany.YourTemplateParser</mainClass>
<arguments>
<argument>path/to/your/template</argument>
<argument>path/to/the/snippets/folder</argument>
<argument>target/path</argument>
</arguments>
</configuration>
</plugin>
(Лично я склонен использовать GMaven вместо exec: java, так как вы можете писать встроенные скрипты Groovy безсоздание пользовательских классов Java)