如何从gradle中的 org.eclipse.persistence.jpa.modelgen.processor 生成元模型类?
在maven我使用像
这样的人 <plugin>
<artifactId>maven-compiler-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.eclipse.persistence</groupId> <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
<version>${eclipselink.version}</version>
</dependency>
</dependencies>
<configuration>
<compilerArgs>
<compilerArg>-Aeclipselink.persistenceunits=unit-name
</compilerArg>
</compilerArgs>
</configuration>
</plugin>
感谢您的任何建议。
答案 0 :(得分:3)
对你来说可能为时已晚,但想分享我是如何解决问题的。以下将在每次编译时生成元模型。注意,如果删除delete
行,编译器可能会抱怨。
ext {
metamodelPath="$buildDir/generated-sources/metamodel"
}
compileJava {
doFirst {
file(metamodelPath).delete()
file(metamodelPath).mkdirs()
}
options.compilerArgs += ['-Aeclipselink.persistencexml=src/main/resources/META-INF/persistence.xml', '-s', metamodelPath ]
}
答案 1 :(得分:1)
很遗憾,以前的解决方案对我不起作用。但这是一个很好的起点。缺少依赖项关闭。
这在Gradle 5.6.1和Groovy 2.5.4下有效:
ext {
eclipselink='2.7.3'
metamodelPath="$buildDir/generated/sources/metamodel/java/main"
persistenceXMLLocation="src/main/resources/META-INF/persistence.xml"
}
compileJava {
doFirst {
file(metamodelPath).delete()
file(metamodelPath).mkdirs()
}
options.compilerArgs += ["-Aeclipselink.persistencexml=${new File(project.projectDir, persistenceXMLLocation).absolutePath}", '-s', metamodelPath]
}
dependencies {
api "org.eclipse.persistence:eclipselink:$eclipselink"
annotationProcessor "org.eclipse.persistence:org.eclipse.persistence.jpa.modelgen.processor:$eclipselink"
}