2
0

aspectj.gradle 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. apply plugin: 'java'
  2. configurations {
  3. ajtools
  4. aspectpath
  5. }
  6. dependencies {
  7. ajtools "org.aspectj:aspectjtools:$aspectjVersion"
  8. compile "org.aspectj:aspectjrt:$aspectjVersion"
  9. }
  10. task compileJava(overwrite: true, description: 'Compiles AspectJ Source', type: Ajc) {
  11. dependsOn processResources
  12. sourceSet = sourceSets.main
  13. inputs.files(sourceSets.main.java.srcDirs)
  14. outputs.dir(sourceSet.classesDir)
  15. aspectPath = configurations.aspectpath
  16. }
  17. task compileTestJava(overwrite: true, description: 'Compiles AspectJ Test Source', type: Ajc) {
  18. dependsOn processTestResources, compileJava, jar
  19. sourceSet = sourceSets.test
  20. inputs.files(sourceSets.test.java.srcDirs)
  21. outputs.dir(sourceSet.classesDir)
  22. aspectPath = files(configurations.aspectpath, jar.archivePath)
  23. }
  24. class Ajc extends DefaultTask {
  25. SourceSet sourceSet
  26. FileCollection aspectPath
  27. Ajc() {
  28. logging.captureStandardOutput(LogLevel.INFO)
  29. }
  30. @TaskAction
  31. def compile() {
  32. println "Running ajc ..."
  33. ant.taskdef(resource: "org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties", classpath: project.configurations.ajtools.asPath)
  34. ant.iajc(classpath: sourceSet.compileClasspath.asPath, fork: 'true', destDir: sourceSet.classesDir.absolutePath,
  35. source: project.convention.plugins.java.sourceCompatibility,
  36. target: project.convention.plugins.java.targetCompatibility,
  37. aspectPath: aspectPath.asPath, sourceRootCopyFilter: '**/*.java', showWeaveInfo: 'true') {
  38. sourceroots {
  39. sourceSet.java.srcDirs.each {
  40. pathelement(location: it.absolutePath)
  41. }
  42. }
  43. }
  44. }
  45. }