【问题标题】:Freemarker Configuration issue (Maven Compilation failure)Freemarker 配置问题(Maven 编译失败)
【发布时间】: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>

我还需要做什么吗? 提前致谢!

【问题讨论】:

    标签: java maven configuration freemarker


    【解决方案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> 
      

      默认范围是编译

      【讨论】:

        猜你喜欢
        • 2017-12-02
        • 2018-08-22
        • 1970-01-01
        • 1970-01-01
        • 2018-11-22
        • 2013-03-07
        • 2019-07-22
        相关资源
        最近更新 更多