- Fix compileTestJava issue in which test classes were not being compiled or run - Use built-in eclipse.project DSL instead of withXml closure to add AspectJ nature and builder - Rename {aspectJ=>aspects}.gradle and format sourcemaster
parent
77d8e81744
commit
5ea51f42fb
3 changed files with 71 additions and 82 deletions
@ -1,81 +0,0 @@ |
||||
// Original source: https://raw.github.com/cbeams/gradleplugins/0.9-upgrade/aspectjPlugin/aspectJ.gradle |
||||
// Included locally here to avoid failure when not connected to the network. |
||||
// See http://issues.gradle.org/browse/GRADLE-1768 |
||||
apply plugin:'java' |
||||
apply plugin:'eclipse' |
||||
|
||||
configurations { |
||||
ajc |
||||
aspects |
||||
ajInpath |
||||
} |
||||
|
||||
task compileJava(dependsOn: JavaPlugin.PROCESS_RESOURCES_TASK_NAME, overwrite: true) { |
||||
dependsOn configurations.ajc.getTaskDependencyFromProjectDependency(true, "compileJava") |
||||
inputs.files(project.sourceSets.main.allSource + project.sourceSets.main.compileClasspath) |
||||
outputs.files(project.sourceSets.main.classesDir) |
||||
|
||||
doLast{ |
||||
ant.taskdef( resource:"org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties", classpath: configurations.ajc.asPath) |
||||
ant.iajc(source:sourceCompatibility, target:targetCompatibility, destDir:sourceSets.main.classesDir.absolutePath, maxmem:"1024m", fork:"true", |
||||
aspectPath:configurations.aspects.asPath, inpath:configurations.ajInpath.asPath, sourceRootCopyFilter:"**/.svn/*,**/*.java",classpath:configurations.compile.asPath, |
||||
Xlint:"ignore"){ |
||||
|
||||
sourceroots{ |
||||
sourceSets.main.java.srcDirs.each{ |
||||
pathelement(location:it.absolutePath) |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
task compileTestJava(dependsOn: JavaPlugin.PROCESS_TEST_RESOURCES_TASK_NAME, overwrite: true) { |
||||
dependsOn configurations.ajc.getTaskDependencyFromProjectDependency(true, "compileTestJava") |
||||
inputs.files(project.sourceSets.test.allSource + project.sourceSets.test.compileClasspath) |
||||
outputs.files(project.sourceSets.test.classesDir) |
||||
|
||||
doLast{ |
||||
ant.taskdef( resource:"org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties", classpath: configurations.ajc.asPath) |
||||
ant.iajc(source:sourceCompatibility, target:targetCompatibility, destDir:sourceSets.main.classesDir.absolutePath, maxmem:"1024m", fork:"true", |
||||
aspectPath:configurations.aspects.asPath, inpath:configurations.ajInpath.asPath, sourceRootCopyFilter:"**/.svn/*,**/*.java",classpath:configurations.compile.asPath, |
||||
Xlint:"ignore"){ |
||||
|
||||
sourceroots{ |
||||
sourceSets.main.java.srcDirs.each{ |
||||
pathelement(location:it.absolutePath) |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
} |
||||
|
||||
//add aspectj support for eclipse plugin |
||||
eclipseClasspath.withXml { xmlProvider -> |
||||
def classpath = xmlProvider.asNode() |
||||
def xmlparser = new XmlParser() |
||||
|
||||
configurations.aspects.files.each{ aspectsLib -> |
||||
classpath.children().findAll{ it['@path'] == aspectsLib.absolutePath }.each { |
||||
def attrs = xmlparser.createNode(it, 'attributes', [:]) |
||||
xmlparser.createNode(attrs, 'attribute', [name: 'org.eclipse.ajdt.aspectpath', value: 'true']); |
||||
} |
||||
} |
||||
} |
||||
|
||||
|
||||
eclipseProject.withXml { xmlProvider-> |
||||
def projectDescription = xmlProvider.asNode() |
||||
def xmlparser = new XmlParser() |
||||
|
||||
def builders = projectDescription.buildSpec[0] |
||||
def ajbuilder = xmlparser.createNode(builders, 'buildCommand', [:]) |
||||
xmlparser.createNode(ajbuilder, 'name', [:]).setValue('org.eclipse.ajdt.core.ajbuilder') |
||||
xmlparser.createNode(ajbuilder, 'arguments', [:]); |
||||
|
||||
def natures = projectDescription.natures[0] |
||||
def ajnature = xmlparser.createNode(null, 'nature', [:]) |
||||
ajnature.setValue('org.eclipse.ajdt.ui.ajnature'); |
||||
natures.children().add(0, ajnature) |
||||
} |
@ -0,0 +1,66 @@ |
||||
// redefine the compileJava and compileTestJava tasks in order to |
||||
// compile sources with ajc instead of javac |
||||
|
||||
configurations { |
||||
ajc |
||||
aspects |
||||
ajInpath |
||||
} |
||||
|
||||
task compileJava(overwrite: true) { |
||||
dependsOn JavaPlugin.PROCESS_RESOURCES_TASK_NAME |
||||
dependsOn configurations.ajc.getTaskDependencyFromProjectDependency(true, "compileJava") |
||||
|
||||
def outputDir = project.sourceSets.main.output.classesDir |
||||
|
||||
inputs.files(project.sourceSets.main.allSource + project.sourceSets.main.compileClasspath) |
||||
outputs.dir outputDir |
||||
|
||||
doLast{ |
||||
ant.taskdef(resource: "org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties", |
||||
classpath: configurations.ajc.asPath) |
||||
|
||||
ant.iajc(source: sourceCompatibility, target: targetCompatibility, |
||||
maxmem: "1024m", fork: "true", Xlint: "ignore", |
||||
destDir: outputDir.absolutePath, |
||||
aspectPath: configurations.aspects.asPath, |
||||
inpath: configurations.ajInpath.asPath, |
||||
sourceRootCopyFilter: "**/*.java", |
||||
classpath: configurations.compile.asPath) { |
||||
sourceroots { |
||||
sourceSets.main.java.srcDirs.each { |
||||
pathelement(location:it.absolutePath) |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
task compileTestJava(overwrite: true) { |
||||
dependsOn JavaPlugin.PROCESS_TEST_RESOURCES_TASK_NAME |
||||
dependsOn configurations.ajc.getTaskDependencyFromProjectDependency(true, "compileTestJava") |
||||
dependsOn jar |
||||
|
||||
def outputDir = project.sourceSets.test.output.classesDir |
||||
|
||||
inputs.files(project.sourceSets.test.allSource + project.sourceSets.test.compileClasspath) |
||||
outputs.dir outputDir |
||||
|
||||
doLast{ |
||||
ant.taskdef(resource: "org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties", |
||||
classpath: configurations.ajc.asPath) |
||||
|
||||
ant.iajc(source: sourceCompatibility, target: targetCompatibility, |
||||
maxmem: "1024m", fork: "true", Xlint: "ignore", |
||||
destDir: outputDir.absolutePath, |
||||
aspectPath: jar.archivePath, |
||||
inpath: configurations.ajInpath.asPath, |
||||
classpath: configurations.testRuntime.asPath + configurations.compile.asPath + jar.archivePath) { |
||||
sourceroots { |
||||
sourceSets.test.java.srcDirs.each { |
||||
pathelement(location:it.absolutePath) |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue