AspectJ and Gradle

In recent post I have described dynamical way of AspectJ waving. Today I have tried compile time way. So no JAVA_TOOL_OPTIONS is necessary.

Gradle build

See https://github.com/eveoh/gradle-aspectj for details:

buildscript { 
    repositories { 
        maven { 
            url "https://maven.eveoh.nl/content/repositories/releases" 
        } 
    } 
    
    dependencies { 
        classpath "nl.eveoh:gradle-aspectj:1.5" 
    } 
} 

project.ext { aspectjVersion = '1.8.6' } 

apply plugin: 'java' //eclipse support 
apply plugin: 'eclipse' 
apply plugin: 'eclipse-wtp' apply plugin: 'aspectj'

Eclipse build

In Eclipse install through Help->Eclipse Marketplace plugin “AspectJ Development tools”. Then add into Gradle (adjusted version of https://github.com/breskeby/gradleplugins/blob/0.9-upgrade/aspectjPlugin/aspectJ.gradle#L29):

eclipse.project.file.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) 
}

Then execute gradle eclipse, refresh workspace and run Project->Clean->All projects. Then start your project and waving should be already done. You can check existence of AspectJ builder in context menu of project, Properties->Builders->AspectJ Builder.

Tags:  Gradle  Java  AspectJ 
Last blog articles:
git gui: Add pull and stash commands
Bosch Silence Plus + code E24
Using LXC virtualization for testing server installation
Ubuntu 18.04 and unprivileged LXC
Workspaces grid in Ubuntu 18.04

Tags:
Java Ubuntu Gradle česky Software-architecture personal DIY children React Eclipse DisplayLink AI Spring JavaScript AspectJ neuron SSH LXC JavaFX Immutables Gnome3 GIT FatJar Edison technologies science procrastination pokusy lambda kvas ellipsis destilace chemie alkohol VisualVM Upstart Tomcat Selenium REST PrimeFaces Log4j Jooq Jackson JSF Debug DI CSS

Last tweets: