java - IntelliJ IDEA 中的 Velocity ResourceNotFoundException

标签 java intellij-idea velocity resourcemanager

我有一个 Velocity 模板 ValueTmpl.vm,Velocity ResourceManager 找不到它。一个最小的例子:

package generate;

import java.io.File;
import java.io.FileWriter;
import java.io.Writer;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;

public class Generate {
    public static void main(String[] args) throws Exception {
        VelocityContext context = new VelocityContext();
        context.put("key", "value");
        Writer writer = new FileWriter(new File("Result.java"));
        createTemplate("generate/templates/ValueTmpl.vm").merge(context, writer);
        writer.close();
    }

    private static Template createTemplate(String vmTemplateFile) {
        VelocityEngine ve = new VelocityEngine();
        ve.setProperty(Velocity.RESOURCE_LOADER, "class");
        ve.setProperty("class.resource.loader.class",
                "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
        ve.init();
        return ve.getTemplate(vmTemplateFile);
    }
}

generate 文件夹位于 src 目录的根目录中。我收到以下错误:

21.03.2011 13:09:01 org.apache.velocity.runtime.log.JdkLogChute log
SEVERE: ResourceManager : unable to find resource 'generate/templates/ValueTmpl.vm' in any resource loader.
Exception in thread "main" org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'generate/templates/ValueTmpl.vm'

有人知道问题出在哪里吗?我应该更改项目设置中的某些内容吗?

提前致谢!

最佳答案

我经常遇到这个问题。

打开“设置”->“编译器”并将“?*.vm”添加到资源列表中。这样它就会被复制到您的/out 目录中。确保 .vm 文件的路径根在项目中标记为源,并且类加载器应该找到它。

将/generate 文件夹从/src 下移出;将其放在与/src 相同的级别。在模块设置中将其标记为“源”,然后通过在"template"处启动访问路径来重试。

关于java - IntelliJ IDEA 中的 Velocity ResourceNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5376874/

相关文章:

java - 如何计算24小时过去与否

java - 是否有创建没有同步和锁的线程的用例?

java - Guava 缓存 - 如何在任何未命中时加载所有内容?

Grails 方法不会出现在 Intellij 结构 Pane 中

velocity - 如何在 Velocity 模板引擎中将十进制数四舍五入到 2 位?

java - 附加包含标签 <form :XXX> 的 div(带有下拉菜单)

jenkins - 在 vscode 或 intellij 中为 jenkins 开发 groovy 脚本

intellij-idea - 无法在intellij idea下运行和调试groovy测试

java - Velocity解析器在解析java代码模板时崩溃

c# - 统一: Knockback my player