1

我正在开发一个使用 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>

我还需要做其他事情吗?提前致谢!

4

2 回答 2

2

您使用了错误的依赖范围。runtime范围不适用于编译。从文档:

此范围表示依赖项不是编译所必需的,而是执行所必需的。它在运行时和测试类路径中,但不在编译类路径中。

所以将范围更改为compile.

<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.20</version>
    <scope>compile</scope>
</dependency>

请参阅Maven 依赖范围。

于 2013-08-01T19:46:12.813 回答
2
    <dependency>
          <groupId>org.freemarker</groupId>
          <artifactId>freemarker</artifactId>
          <version>2.3.14</version>
    </dependency> 

默认范围是编译

于 2013-08-01T19:47:20.707 回答