У меня есть приложение, упакованное внутри onejar, которое использует Velocity для создания шаблонов.
В моей настройке проекта maven у меня есть файл в $base/src/main/resources/template.html
. Когда приложение упаковывается как onejar, полученный onejar содержит внутри себя вложенный jar (в main/my-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? И во-вторых, если бы это было настроено правильно, какой путь я бы указал, чтобы template.html можно было найти внутри этого внутреннего вложенного банка?