简体   繁体   English

如何将aspectJ导入项目?

[英]How to import aspectJ into project?

I need to use aspectJ.我需要使用方面J。 How can I use the functionality of this lib / framework?如何使用这个库/框架的功能?

This is my build.gradle file这是我的 build.gradle 文件

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.显然,仅仅进入实现是不足以使用 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.将 Maven 插件添加到 Gradle 构建并希望以某种神奇的方式在那里工作并没有多大意义。 As the name implies, aspectj-maven-plugin if meant to be used in Maven projects.顾名思义, aspectj-maven-plugin如果打算在 Maven 项目中使用。 You need to use a Gradle plugin.您需要使用 Gradle 插件。 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.也许您想查看 AspectJ 的Freefair插件,并决定哪种场景(因此,哪个插件)适合您的用例。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM