0

I need to use aspectJ. How can I use the functionality of this lib / framework?

This is my build.gradle file

plugins {
    id "com.diffplug.eclipse.apt" version "3.22.0"
    id "com.github.johnrengelman.shadow" version "7.0.0"
    id "application"
}


version "0.2"
group "ru.fusionsoft"

repositories {
    mavenCentral()
    mavenLocal()
//    jcenter()
}

configurations {
    // for dependencies that are needed for development only
    developmentOnly
//    aspectjVersion: '1.9.9.1'
}

dependencies {
    implementation group: 'org.aspectj', name: 'aspectjrt', version: '1.9.9.1'
    implementation group: 'org.aspectj', name: 'aspectjweaver', version: '1.9.9.1'
    implementation group: 'org.aspectj', name: 'aspectjtools', version: '1.9.9.1'
    implementation group: 'org.codehaus.mojo', name: 'aspectj-maven-plugin', version: '1.14.0'

    implementation "io.micronaut:micronaut-session:2.5.0"
    implementation "io.micronaut.redis:micronaut-redis-lettuce:2.5.0"
    implementation group: 'org.postgresql', name: 'postgresql', version: '42.2.8'
    implementation group: 'io.jsonwebtoken', name: 'jjwt', version: '0.9.1'
    implementation group: 'org.apache.pdfbox', name: 'pdfbox', version: '3.0.0-RC1'
    implementation group: 'cglib', name: 'cglib', version: '3.3.0'
    implementation 'org.reflections:reflections:0.10.2'
    annotationProcessor(platform("io.micronaut:micronaut-bom:2.5.0"))
    annotationProcessor("io.micronaut:micronaut-inject-java:2.5.0")
    annotationProcessor("io.micronaut:micronaut-validation:2.5.0")
    implementation(platform("io.micronaut:micronaut-bom:2.5.0"))
    implementation("io.micronaut:micronaut-inject:2.5.0")
    implementation("io.micronaut:micronaut-validation:2.5.0")
    implementation("io.micronaut:micronaut-runtime:2.5.0")
    implementation("javax.annotation:javax.annotation-api:1.3.2")
    implementation("io.micronaut:micronaut-http-server-netty:2.5.0")
    implementation("io.micronaut:micronaut-http-client:2.5.0")
    runtimeOnly("ch.qos.logback:logback-classic")
    testAnnotationProcessor(enforcedPlatform("io.micronaut:micronaut-bom:2.5.0"))
    testAnnotationProcessor("io.micronaut:micronaut-inject-java:2.5.0")
    testImplementation(enforcedPlatform("io.micronaut:micronaut-bom:2.5.0"))
    testImplementation("org.junit.jupiter:junit-jupiter-api:2.5.0")
    testImplementation("io.micronaut.test:micronaut-test-junit5:3.0.0")
    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
    testImplementation "org.testcontainers:postgresql:1.14.3"
    annotationProcessor("io.micronaut.configuration:micronaut-openapi:1.5.3")
    implementation("io.swagger.core.v3:swagger-annotations")
    implementation("io.micronaut:micronaut-session:2.5.0")
    annotationProcessor ("io.micronaut.security:micronaut-security-annotations:2.5.0")
    implementation ("io.micronaut.security:micronaut-security-jwt:2.5.0")
    implementation("io.micronaut.sql:micronaut-jdbc-hikari:2.5.0")
    implementation("io.micronaut.sql:micronaut-hibernate-jpa:2.5.0")
    implementation("io.micronaut.data:micronaut-data-hibernate-jpa:2.5.0")
    annotationProcessor("io.micronaut.data:micronaut-data-processor:2.5.0")
    implementation group: 'com.jcraft', name: 'jsch', version: '0.1.44-1'

    // https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java
    implementation group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '3.141.59'

    // https://mvnrepository.com/artifact/com.github.2captcha/2captcha-java
    implementation group: 'com.github.2captcha', name: '2captcha-java', version: '1.0.1'

    // https://mvnrepository.com/artifact/com.linuxense/javadbf
    implementation group: 'com.linuxense', name: 'javadbf', version: '0.4.0'

    // https://mvnrepository.com/artifact/org.apache.commons/commons-csv
    implementation group: 'org.apache.commons', name: 'commons-csv', version: '1.8'

    // https://mvnrepository.com/artifact/org.apache.poi/poi
    implementation group: 'org.apache.poi', name: 'poi', version: '5.0.0'

    // https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils
    implementation group: 'commons-beanutils', name: 'commons-beanutils', version: '1.9.4'

    // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core
    implementation group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.13.1'

    // https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-xml
    implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version: '2.13.1'

    // Metrics
    implementation "io.micronaut.micrometer:micronaut-micrometer-core"
    implementation "io.micronaut.micrometer:micronaut-micrometer-registry-statsd"
    implementation "io.micronaut:micronaut-management"
    implementation 'io.micronaut.micrometer:micronaut-micrometer-registry-prometheus'
}



test.classpath += configurations.developmentOnly

mainClassName = "ru.fusionsoft.hcs.Application"

// use JUnit 5 platform
test {
    useJUnitPlatform()
}

java {
    sourceCompatibility = JavaVersion.toVersion('14')
    targetCompatibility = JavaVersion.toVersion('14')
}

tasks.withType(JavaCompile) {
    options.encoding = "UTF-8"
    options.compilerArgs.addAll([
        '-parameters',
        // enables incremental compilation
        '-Amicronaut.processing.incremental=true',
        '-Amicronaut.processing.annotations=ru.fusionsoft.*',
        "-Amicronaut.processing.group=$project.group",
        "-Amicronaut.processing.module=$project.name",
    ])
}

shadowJar {
    mergeServiceFiles()
}

tasks.withType(JavaCompile) {
    options.fork = true
    options.forkOptions.jvmArgs << '-Dmicronaut.openapi.views.spec=rapidoc.enabled=true,swagger-ui.enabled=true,swagger-ui.theme=default,swagger-ui.tagsSorter=\'alpha\',swagger-ui.operationsSorter=\'alpha\''
}

tasks.withType(JavaExec) {
    classpath += configurations.developmentOnly
    jvmArgs('-XX:TieredStopAtLevel=1', '-Dcom.sun.management.jmxremote')
    if (gradle.startParameter.continuous) {
        systemProperties(
            'micronaut.io.watch.restart':'true',
            'micronaut.io.watch.enabled':'true',
            "micronaut.io.watch.paths":"src/main"
        )
    }
}

I didn’t write it initially, and I never used the primitive again. Apparently, just entering the implementation is not enough to use AOP. If you need additional information, I'll update.

kriegaex
  • 63,017
  • 15
  • 111
  • 202
  • How about some feedback to my answer? I think it is rather impolite to ask for help in public and then keep your helpers waiting. It is customary to either comment on an answer you do not fully understand or diagree with or to click on the grey check mark beside a correct answer in order to mark the question as answered. – kriegaex Nov 13 '22 at 09:26

1 Answers1

2

It does not make much sense to add a Maven plugin to a Gradle build and hope that somehow magically it will work there. As the name implies, aspectj-maven-plugin is meant to be used in Maven projects. You need to use a Gradle plugin. Maybe you want to take a look at the Freefair plugins for AspectJ and decide which scenario (and therefore, which plugin) fits your use case.

kriegaex
  • 63,017
  • 15
  • 111
  • 202