首页 > 解决方案 > Maven Archetypes 上的速度反射:从 Json 获取数据

问题描述

我想从 json 文件中获取数据以在 maven-archetype 中构建一个类。我正在尝试通过速度反射来做到这一点,但我只能使用 java SE 类。我试图将依赖项添加到原型 pom,但速度没有读取。我如何将其他类(如 JsonTool)放入 mvn 原型的速度上下文中?

这是我尝试过的:

#set($str = $package.getClass().forName("org.apache.velocity.tools.generic.JsonTool").newInstance());

在安装我有这个例外:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:3.0.1:integration-test (default-integration-test) on project:
[ERROR] **Archetype IT 'basic' failed: org.apache.maven.archetype.exception.ArchetypeGenerationFailure: Error merging velocity templates: Invocation of method 'forName' in  class java.lang.Class threw exception java.lang.ClassNotFoundException: org.apache.velocity.tools.generic.JsonTool at archetype-resources/src/main/java/entity/__classname__Entity.java[line 6, column 33]**

标签: javaapachemavenvelocitymaven-archetype

解决方案


检查您的依赖项和版本。

您使用的是哪个版本的速度引擎核心和速度工具通用?JsonTool出现在velocity-tools-generic 3.0中,至少需要velocity-engine-core 2.0。

正确的依赖项部分应如下所示:

<dependency>
    <groupId>org.apache.velocity.tools</groupId>
    <artifactId>velicity-tools-generic</artifactId>
    <version>3.0</version>
</dependency>

推荐阅读