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.
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.