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

标签 java maven-2 freemarker templating

您如何将 Freemarker(或替代方案)作为模板代码生成器构建到 Maven 项目中?我是 Maven 的新手,希望得到一些帮助。

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

谷歌搜索找到了 freemarker 而不是我自己写的,它似乎被 Spring 使用,这对我来说是一个足够好的引用,尽管我还没有开始使用它,任何其他与 Maven 一起工作的建议将不胜感激也是。

This website 告诉我如何将它作为依赖项添加到我的 pom.xml 中。 This SO question 告诉我生成的源应该去哪里。我无法解决的是如何将它们结合在一起,所以我从模板中生成生成的源,然后我生成的源像常规源一样用于编译、测试、jar、javadoc 等。有没有其他人使用过maven 中的 java 模板代码生成器,可以提供帮助吗?

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

最佳答案

我为此编写了一个 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>

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

我正在编写突出显示插件用法的详细文档,并将更新 project website相应地。

关于java - 我如何在 Maven 中使用模板代码生成器(例如 freemarker)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3925057/

相关文章:

java - 通过 JSch shell 的多个命令

java - 如何拦截Hibernate生成的SQL?

java - 和 children 一起阅读 POM

maven-2 - Maven:将文件夹或jar文件添加到当前类路径中

java - Freemarker 将哈希值转换为字符串

validation - 将 Spring 3 MVC 注释验证与 Freemarker 结合使用

java - 按对象中的不同参数对 ArrayList 进行排序

java - 如何将所需的长度设置为数组中的整数?

java - 如何构建多个maven模块项目?

java - 在 Freemarker 模板引擎中读取导致 TemplateException 的 Java 对象