我如何从Gradle运行DataNucleus增强器? [英] How can I run DataNucleus Enhancer from Gradle?
问题描述
我搜索并没有发现运行DataNucleus的插件Gradle增强器。但是有一种方法可以通过使用DataNucleus Enhancer Ant任务来完成此操作。
我在 build.gradle $ c中添加了以下内容
$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ compileJava
doLast {
//定义实体类
def entityFiles = fileTree(sourceSets.main.output.classesDir).matching {
include'com / mycom /*.class','org / myorg / *。class'
}
println用DataNucleus增强下列文件
entityFiles.getFiles()。each {
println it
}
//定义DataNucleus Enhancer的Ant任务
ant.taskdef(
名称:'datanucleusenhancer',
classpath: sourceSets.main.runtimeClasspath.asPath,
classname:'org.datanucleus.enhancer.EnhancerTask'
//下面是DataNucleus增强器3.1.1
// classname:'org.datanucleus.enhancer.tools.EnhancerTask'
)
// run DataNucleus增强器作为Ant任务
ant.datanucleusenhancer(
classpath:sourceSets.main.runtimeClasspath.asPath,
verbose:true,
api:JPA){
entityFiles.addToAntBuilder(ant,'fileset',FileCollection.AntType.FileSet)
}
}
}
classes.dependsOn(datanucleusEnhance)
在 entityFiles
中,您可以在其中配置JPA实体注释类。
不幸的是,你看不到增强器输出,因为这个任务正在使用Ant记录。除非你用 -i
或 -d
选项运行gradle。
使用:Java 8, org.eclipse.persistence:javax.persistence:2.1.0 ,
org.datanucleus:datanucleus-accessplatform -jpa-rdbms:4.1.1
。
Is there a gradle plugin for running DataNucleus Enhancer? As I can see from documentation you can run it only from Maven or Ant: http://www.datanucleus.org/products/datanucleus/jpa/enhancer.html
I searched and found no plugin for running the DataNucleus Enhancer from Gradle. But there is a way of doing this by using the DataNucleus Enhancer Ant task.
I added the following in my build.gradle
.
task datanucleusEnhance {
description "Enhance JPA model classes using DataNucleus Enhancer"
dependsOn compileJava
doLast {
// define the entity classes
def entityFiles = fileTree(sourceSets.main.output.classesDir).matching {
include 'com/mycom/*.class', 'org/myorg/*.class'
}
println "Enhancing with DataNucleus the following files"
entityFiles.getFiles().each {
println it
}
// define Ant task for DataNucleus Enhancer
ant.taskdef(
name : 'datanucleusenhancer',
classpath : sourceSets.main.runtimeClasspath.asPath,
classname : 'org.datanucleus.enhancer.EnhancerTask'
// the below is for DataNucleus Enhancer 3.1.1
//classname : 'org.datanucleus.enhancer.tools.EnhancerTask'
)
// run the DataNucleus Enhancer as an Ant task
ant.datanucleusenhancer(
classpath: sourceSets.main.runtimeClasspath.asPath,
verbose: true,
api: "JPA") {
entityFiles.addToAntBuilder(ant, 'fileset', FileCollection.AntType.FileSet)
}
}
}
classes.dependsOn(datanucleusEnhance)
In the entityFiles
is where you configure your JPA entity annotated classes.
Unfortunately you cannot see the enhancer output, as this task is using Ant logging. Unless you're running gradle with -i
or -d
option.
Using: Java 8, org.eclipse.persistence:javax.persistence:2.1.0
, org.datanucleus:datanucleus-accessplatform-jpa-rdbms:4.1.1
.
这篇关于我如何从Gradle运行DataNucleus增强器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!