【问题标题】:eclipselink metamodel with gradle and groovy带有 gradle 和 groovy 的 eclipselink 元模型
【发布时间】:2015-06-14 18:15:48
【问题描述】:
如何在 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>
感谢您的建议。
【问题讨论】:
标签:
java
jpa
gradle
eclipselink
build.gradle
【解决方案1】:
对你有用可能为时已晚,但想分享我是如何解决问题的。以下将在每次编译时生成元模型。请注意,如果您删除带有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 ]
}
【解决方案2】:
不幸的是,以前的解决方案对我不起作用。但这是一个很好的起点。缺少依赖项闭包。
这适用于 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"
}