简体   繁体   English

通过运行Maven任务使用Freemarker生成txt文件

[英]Generate txt file using Freemarker through running Maven task

My goal is to generate txt file using Freemarker (json + ftl template) by running Maven task.我的目标是通过运行 Maven 任务使用 Freemarker(json + ftl 模板)生成 txt 文件。 I am able to generate file using Java, but I would like to create file eg at Maven generate-sources phase.我能够使用 Java 生成文件,但我想创建文件,例如在 Maven 生成源阶段。 Finally I would like to run script with Maven tasks, which would build package containing my txt file.最后,我想用 Maven 任务运行脚本,这将构建包含我的 txt 文件的包。

Is it possible to achieve?有可能实现吗? Any suggestions?有什么建议?

OK, I achive this by using freemarker-maven-plugin ( https://github.com/fugerit79/freemarker-maven-plugin-bck ).好的,我通过使用 freemarker-maven-plugin ( https://github.com/fugerit79/freemarker-maven-plugin-bck ) 来实现这一点。 I have add execution to my pom:我已将执行添加到我的 pom:

        <execution>
            <id>freemarker</id>
            <!-- Optional, defaults to generate-sources -->
            <phase>generate-sources</phase>
            <goals>
                <!-- Required, must be generate -->
                <goal>generate</goal>
            </goals>
            <configuration>
                <!-- Optional, defaults to src/main/freemarker -->
                <sourceDirectory>src/main/freemarker</sourceDirectory>
                <!-- Optional, defaults to src/main/freemarker/template -->
                <templateDirectory>src/main/freemarker/template</templateDirectory>
                <!-- Optional, defaults to src/main/freemarker/generator -->
                <generatorDirectory>src/main/freemarker/generator</generatorDirectory>
                <!-- Optional, defaults to target/generated-sources/freemarker -->
                <outputDirectory>target/generated-sources/freemarker/configs/PRD/${mavenTest1}/</outputDirectory>
            </configuration>
        </execution>

And dependency:和依赖:

<dependency>
    <groupId>de.fenvariel</groupId>
    <artifactId>freemarker-maven-plugin</artifactId>
    <version>1.1</version>
</dependency>

And I used this properties:我使用了这个属性:

<properties>
    <mavenTest1>${mavenTest1}</mavenTest1>
</properties>

My project structure lookst like this:我的项目结构如下所示:

/main/freemarker/generator  - json file
/main/freemarker/template  - ftl file

And file have generated when I call maven task 'compile' with parameter eg当我使用参数调用 maven 任务“编译”时,文件已经生成,例如

-DmavenTest1=36 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM