In realtà questa domanda è abbastanza vecchio, ma dal momento che un imbattuto lo stesso problema voglio condividere la mia soluzione in ogni caso.
La soluzione migliore che ho trovato è this. In realtà non esiste un supporto integrato per AspectJ in Gradle e i plugin esistenti (ad esempio, il plugin Gradle AspectJ) non funzionano con Lombok. Quindi la soluzione è quella di abilitare manualmente la tessitura in tempo reale nel tuo codice. Un pronto ad andare gradle.build per Java 8 è presente
buildscript {
repositories {
jcenter()
maven { url 'http://repo.spring.io/plugins-release' }
}
dependencies {
}
}
apply plugin: 'idea' // if you use IntelliJ
apply plugin: 'java'
ext {
aspectjVersion = '1.8.9'
springVersion = '4.2.1.RELEASE'
}
repositories {
jcenter()
}
configurations {
ajc
aspects
compile {
extendsFrom aspects
}
}
dependencies {
compile "org.aspectj:aspectjrt:$aspectjVersion"
compile "org.aspectj:aspectjweaver:$aspectjVersion"
ajc "org.aspectj:aspectjtools:$aspectjVersion"
aspects "org.springframework:spring-aspects:$springVersion"
}
def aspectj = { destDir, aspectPath, inpath, classpath ->
ant.taskdef(resource: "org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties",
classpath: configurations.ajc.asPath)
ant.iajc(
maxmem: "1024m", fork: "true", Xlint: "ignore",
destDir: destDir,
aspectPath: aspectPath,
inpath: inpath,
classpath: classpath,
source: project.sourceCompatibility,
target: project.targetCompatibility
)
}
compileJava {
doLast {
aspectj project.sourceSets.main.output.classesDir.absolutePath,
configurations.aspects.asPath,
project.sourceSets.main.output.classesDir.absolutePath,
project.sourceSets.main.runtimeClasspath.asPath
}
}
compileTestJava {
dependsOn jar
doLast {
aspectj project.sourceSets.test.output.classesDir.absolutePath,
configurations.aspects.asPath + jar.archivePath,
project.sourceSets.test.output.classesDir.absolutePath,
project.sourceSets.test.runtimeClasspath.asPath
}
}
spiegazione supplementare si possono trovare nella article already mentioned above. Il build.gradle fornito qui è una versione aggiornata di quella fornita nell'articolo per consentire l'uso di Java 8 e AspectJ versione 1.8.9 e inoltre tutte le cose non necessarie vengono rimosse.
* Chiede scusa volevo dire - AspectJ + Gradle + Lombok non funziona. – Setzer