首页 > 解决方案 > 通过运行 Maven 任务使用 Freemarker 生成 txt 文件

问题描述

我的目标是通过运行 Maven 任务使用 Freemarker(json + ftl 模板)生成 txt 文件。我能够使用 Java 生成文件,但我想创建文件,例如在 Maven 生成源阶段。最后我想用 Maven 任务运行脚本,它会构建包含我的 txt 文件的包。

有没有可能实现?有什么建议么?

标签: mavenfreemarker

解决方案


好的,我通过使用 freemarker-maven-plugin ( https://github.com/fugerit79/freemarker-maven-plugin-bck ) 实现了这一点。我在我的 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>

和依赖:

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

我使用了这个属性:

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

我的项目结构看起来像这样:

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

当我使用参数调用 maven 任务“编译”时,文件已经生成,例如

-DmavenTest1=36 

推荐阅读