【问题标题】:Using fmpp in gradle to generate java files在gradle中使用fmpp生成java文件
【发布时间】:2012-11-03 07:21:07
【问题描述】:

我有一个现有的 maven 项目,我正在尝试移植到 gradle。

一个子模块使用 fmpp/freemarker 生成一大堆 java 文件,然后反馈到构建中。

我是 gradle 新手,想知道是否有人知道这样做的简单方法。

任何帮助将不胜感激。

我当前的 pom.xml 如下所示:

<build>
    <plugins>
        <!-- Freemarker maven plugin for code generation -->
        <plugin>
            <groupId>com.googlecode.fmpp-maven-plugin</groupId>
            <artifactId>fmpp-maven-plugin</artifactId>
            <version>1.0</version>
            <dependencies>
                <dependency>
                    <groupId>org.unix4j</groupId>
                    <artifactId>unix4j-tools</artifactId>
                    <version>0.1-SNAPSHOT</version>
                    <optional>true</optional>
                </dependency>
            </dependencies>
            <configuration>
                <cfgFile>src/main/resources/codegen/config.fmpp</cfgFile>
                <outputDirectory>target/generated-sources/main/java</outputDirectory>
                <templateDirectory>src/main/resources/codegen/templates</templateDirectory>
            </configuration>
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>add-source</goal>
                    </goals>
                    <configuration>
                        <sources>
                            <source>src/main/generated</source>
                        </sources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

【问题讨论】:

    标签: gradle freemarker fmpp


    【解决方案1】:

    抱歉,应该先花更多时间在谷歌上搜索。这是对我有用的解决方案:

    project(':unix4j-core:unix4j-command') {
        configurations {pmd}
    
        dependencies {
            compile project(':unix4j-core:unix4j-base')
            compile project(':unix4j-tools')
            pmd project(':unix4j-tools')
        }
    
        task generateFmppSources(dependsOn: ":unix4j-tools:compileJava") << {
            println "Generating sources...."
            ant.taskdef(name:'fmpp', classname:'fmpp.tools.AntTask', classpath:configurations.pmd.asPath);
            ant.fmpp configuration:"src/main/resources/codegen/config.fmpp", sourceRoot:"src/main/resources/codegen/templates", outputRoot:"target/generated-sources/main/java";
        }
        compileJava.dependsOn generateFmppSources
        sourceSets {
            main {
                java {
                    srcDir 'target/generated-sources/main/java'
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-04
      • 2015-05-27
      • 2021-11-10
      • 2019-09-14
      • 1970-01-01
      • 2020-06-02
      • 2014-07-15
      • 2015-07-16
      相关资源
      最近更新 更多