我的src / main / resources中有两个文件,我希望将一个文件的主体注入另一个文件的特定位置。因此,一个文件应该是一个模板,另一个文件将填充此模板的数据(类似于Apache Velocity)。
我可以使用一些现有的Maven插件吗?
提前谢谢。
解决方案: 我决定不使用特殊的插件,而是将其添加到pom.xml:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>rng-injection</id>
<phase>generate-resources</phase>
<configuration>
<target>
<echo message="Injecting RNG schemes"/>
<copy file="${main.resources}/RNG/enets-template.rng"
tofile="${main.resources}/RNG/enets.rng"
verbose="true"
overwrite="true"/>
<copy file="${main.resources}/RNG/modeldefinition-template.rng"
tofile="${main.resources}/RNG/modeldefinition.rng"
verbose="true"
overwrite="true"/>
<property name="enets-def" value="${main.resources}/RNG/enetsdefinitions.rng"/>
<loadfile property="def-file" srcfile="${enets-def}"/>
<replace file="${main.resources}/RNG/enets.rng">
<replacefilter token="{!enets-definition!}" value="${def-file}"/>
</replace>
<replace file="${main.resources}/RNG/modeldefinition.rng">
<replacefilter token="{!enets-definition!}" value="${def-file}"/>
</replace>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
答案 0 :(得分:2)
我不知道任何提供你想要做的插件,但作为一个开始,你可以将主体读入属性并使用资源过滤将该属性注入第二个文件。
答案 1 :(得分:1)
有关如何构建插件以执行与此相关的操作的示例,请参阅Apache Mahout上的集合代码生成器mojo。它是一个使用velocity来生成java代码的插件。