【发布时间】:2021-11-28 10:55:40
【问题描述】:
我的目标是通过运行使用 Freemarker(json + ftl 模板)生成 txt 文件 Maven 任务。我可以使用 Java 生成文件,但我想创建文件,例如在 Maven 生成源阶段。最后我想用 Maven 任务运行脚本,它会构建包含我的 txt 文件的包。
有可能实现吗?有什么建议吗?
【问题讨论】:
标签: maven freemarker
我的目标是通过运行使用 Freemarker(json + ftl 模板)生成 txt 文件 Maven 任务。我可以使用 Java 生成文件,但我想创建文件,例如在 Maven 生成源阶段。最后我想用 Maven 任务运行脚本,它会构建包含我的 txt 文件的包。
有可能实现吗?有什么建议吗?
【问题讨论】:
标签: maven freemarker
好的,我通过使用 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
【讨论】: