Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Maven中使用模板代码生成器(如freemarker)?_Java_Maven 2_Freemarker_Templating - Fatal编程技术网

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

Java 如何在Maven中使用模板代码生成器(如freemarker)?,java,maven-2,freemarker,templating,Java,Maven 2,Freemarker,Templating,您将如何构造(或替代)作为Maven项目中的模板代码生成器?我对Maven很陌生,希望能得到一些帮助 我想从项目中的模板生成一些代码。[a] 谷歌搜索发现,which似乎使用了which,这对我来说是一个足够好的参考,而不是写我自己的,尽管我还没有开始写它,任何其他对Maven有用的建议也将不胜感激 告诉我如何将其作为依赖项添加到pom.xml。 告诉我生成的源应该去哪里。我无法解决的是如何将它们联系在一起,所以我从模板中生成了我的生成源,然后我的生成源被用作编译、测试、jar、javadoc等

您将如何构造(或替代)作为Maven项目中的模板代码生成器?我对Maven很陌生,希望能得到一些帮助

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

谷歌搜索发现,which似乎使用了which,这对我来说是一个足够好的参考,而不是写我自己的,尽管我还没有开始写它,任何其他对Maven有用的建议也将不胜感激

告诉我如何将其作为依赖项添加到pom.xml。 告诉我生成的源应该去哪里。我无法解决的是如何将它们联系在一起,所以我从模板中生成了我的生成源,然后我的生成源被用作编译、测试、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>

src/test/resources/freemarker/config.fmpp
目标/测试/生成源/fmpp/
src/test/resources/fmpp/
com.googlecode.fmpp-maven-plugin

相应地。

这里是该作业的另一个插件:

<> P>从问题的最初描述听起来好像你应该考虑创建一个Maven原型(AKA项目模板):

听起来你可能想在等式中添加一些属性:


Maven原型功能还提供了一种使用ApacheVelocity进行替换的方法(与Freemarker接近)。。。但我还没有弄清楚这一点。

文档进展如何?:-)我不知道如何将pom中的值(例如,project.version)传递给freemarker插件,这样freemarker插件就可以知道这些值了。谢谢你的插件!这对我刚写的图书馆来说非常有用@bacar:看一看Brandon Mintern的GitHub项目中的一个很好的工作示例:遗憾的是,即使是GitHub端口和forks也有很多技术债务,所以它看起来不可用。我认为原型方法在代码生成器项目中不起作用。