That's pretty much what I've done to support AspectJ in Spring Security:

https://fisheye.springsource.org/browse/spring-security/gradle/aspectj.gradle?r=55de2cfcb1d7f5399149b4f46818648114d4ec05

It also allows you to more easily override the compileTestJava task as well.

Luke.


On 15/03/2010 02:08, Adam Murdoch wrote:


....

I would be tempted to use a custom task for this, and use the various
annoations, such as @InputFiles and @OutputDirectory:

task compileJava(type: AspectJCompile) {
      ajcClasspath = configurations.ajc
      source = sourceSets.main.java
      destDir = sourceSets.classesDir
      // ... plus some more properties
}

class AspectJCompile extends DefaultTask { // or possibly extends SourceTask
      @InputFiles
      def FileCollection ajcClasspath
      @InputFiles
      def FileCollection source
      @OutputDirectory
      def File destDir
      @Input
      def souceCompatibility
      // ... plus some more properties ...

      @TaskAction
      def compile() {
          project.ant {
              taskdef(..., classpath: ajcClasspath.asPath)
              iajc(..., destDir: destDir, sourceCompatibility:
sourceCompatibility) {
                   ....
              }
          }
      }
}

This is arguably a better way of separating the 'what' and the 'how'.
Plus, by using the annotations, you get validation and (some) dependency
auto-wiring for free.



---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email


Reply via email to