如何在Maven中使用模板代码生成器(例如freemarker)?

Nic*_*cue 13 java maven-2 freemarker templating

你如何将Freemarker(或替代)作为模板代码生成器构建到Maven项目中?我是Maven的新手,非常感谢一些帮助.

我想从我的项目中的模板生成一些代码.[一个]

而不是写我自己的,谷歌搜索发现了一个似乎被Spring使用的freemarker,这对我来说是一个很好的参考,虽然我还没有开始使用它,任何其他适合Maven的建议也会受到赞赏.

这个网站告诉我如何将它作为依赖项添加到我的pom.xml中. 这个问题告诉我生成的源应该去哪里.我无法解决的问题是如何将它们组合在一起,因此我从模板生成生成的源代码,然后生成的源代码使用常规源代码进行编译,测试,jar,javadoc等.还有其他人使用过maven中的java模板代码生成器可以帮忙吗?

[a]我知道泛型将是通常的解决方案,事实上我正在使用它们,但我必须使用模板来处理原始情况,而不会引入复制/粘贴错误.请相信我:-)

Fai*_*roz 20

我为此目的编写了一个maven插件.它使用FreeMarker预处理器.

下面是来自pom.xml的片段,突出显示了它的用法:

<plugins>
    <plugin>
        <configuration>
            <cfgFile>src/test/resources/freemarker/config.fmpp</cfgFile>
            <outputDirectory>target/test/generated-sources/fmpp/</outputDirectory>
            <templateDirectory>src/test/resources/fmpp/</templateDirectory>
        </configuration>
        <groupId>com.googlecode.fmpp-maven-plugin</groupId>
        <artifactId>fmpp-maven-plugin</artifactId>
        <version>1.0</version>
        <executions>
            <execution>
                <phase>generate-sources</phase>
                <goals>
                    <goal>generate</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
</plugins>
Run Code Online (Sandbox Code Playgroud)

这里cfgFile是保存FMPP配置文件的路径.(如果您没有使用FreeMarker中传递的任何特殊数据,那么空文件就足够了)templateDirectory是您保存FreeMarker模板的地方.outputDirectory是您希望生成输出文件的位置.

我正在编写一份详细说明插件用法的详细文档,并将相应地更新项目网站.