【发布时间】:2014-05-08 19:54:32
【问题描述】:
我有一个打包在 onejar 中的应用程序,它使用 Velocity 进行模板化。
在我的 Maven 项目设置中,我在 $base/src/main/resources/template.html 中有一个文件。当应用程序被打包为 onejar 时,生成的 onejar 在其中包含一个嵌套的 jar(在 main/my-jar.jar 下)。该 jar 又将 template.html 文件打包在其根目录下。 (显然是 maven 将其从 src/main/resources 复制到包的根目录中)
我想将该模板作为资源加载到 Velocity 中。我读过我需要使用 ClassPathResourceLoader 来执行此操作,所以我的代码如下所示:
VelocityEngine ve = new VelocityEngine();
ve.setApplicationAttribute("resource.loader", "class");
ve.setApplicationAttribute("class.resource.loader.class",
org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader.class);
ve.init();
Template t = ve.getTemplate("template.html");
这每次都会失败,除了 Velocity 的资源加载器都找不到该文件。
我有两个问题 - 首先,这是否是配置 ClasspathResourceLoader 使用的正确方法?其次,如果配置正确,我将指定什么路径以便可以在该内部嵌套 jar 中找到 template.html?
【问题讨论】:
标签: java classpath velocity onejar