我想从 json 文件获取数据以在 maven-archetype 中构建一个类。我试图用速度反射来做到这一点,但我只能使用 java SE 类。我尝试添加对原型(prototype) pom 的依赖项,但速度无法读取该依赖项。如何将其他类(如 JsonTool)放入 mvn 原型(prototype)的速度上下文中?
这是我尝试过的:
#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]**
最佳答案
检查您的依赖项和版本。
您使用的是哪个版本的velocity-engine-core 和velocity-tools-generic? 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>
关于java - Maven 原型(prototype)的速度反射 : get data from Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56305275/