Freemarker 配置问题(Maven 编译失败)
Posted
技术标签:
【中文标题】Freemarker 配置问题(Maven 编译失败)【英文标题】:Freemarker Configuration issue (Maven Compilation failure) 【发布时间】:2013-08-02 21:52:20 【问题描述】:我正在开发一个使用 freemarker 的项目,我需要进行这种调用:
messageContent.append(FreeMarkerTemplateUtils.processTemplateIntoString(freemarkerConfig.getConfiguration().getTemplate("sampleTemplate.ftl"), model));
但是当我尝试做 mvn clean package 时,我得到了
"无法访问freemarker.template.Configuration [ERROR] freemarker.template.Configuration 的类文件未找到”。
当我尝试显式创建配置对象(Configuration config = new Configuration())
时,Eclipse 会按预期建议我导入“freemarker.template.Configuration”。我导入它,错误在 Eclipse 中消失了,但是当我再次尝试执行 mvn clean package
时,我遇到了“包 freemarker.template 不存在”的构建失败。
我的 pom 文件有:
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.20</version>
<scope>runtime</scope>
</dependency>
我还需要做什么吗? 提前致谢!
【问题讨论】:
【参考方案1】:您使用了错误的依赖范围。 runtime
范围不用于编译。来自文档:
这个范围表示依赖不是编译所必需的,而是执行所必需的。它在运行时和测试类路径中,但不在编译类路径中。
所以将范围更改为compile
。
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.20</version>
<scope>compile</scope>
</dependency>
见maven dependency scope.
【讨论】:
【参考方案2】: <dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.14</version>
</dependency>
默认范围是编译
【讨论】:
以上是关于Freemarker 配置问题(Maven 编译失败)的主要内容,如果未能解决你的问题,请参考以下文章
maven中使用freemarker,如何配置需要哪些配置文件
如何配置 Maven Freemarker 以识别 `@include_page` 标签?
如何在 FreeMarker 和 maven 或 ant(不是 servlet)中使用 auto_import 功能