如何完成freefairspectJ gradle插件的设置?

问题描述 投票:0回答:1

我正在尝试按照 AspectJ 编译文档完成 freefairspectj gradle 插件的设置: https://docs.freefair.io/gradle-plugins/current/reference/ 我已经安装了插件,没有问题,但是执行以下任务时 gradle 任务失败了

compileJava {
    task myAjcTask(type: io.freefair.gradle.plugins.aspectj.AspectjCompile) {
        aspectjClasspath.setFrom configurations.aspectjs
        ajcOptions {
            inpath = files()
            aspectpath = files()
        }
    }
}

堆栈跟踪如下:

org.gradle.api.GradleScriptException: A problem occurred evaluating root project 'someproject'.
    at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:93)
    at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.lambda$apply$0(DefaultScriptPluginFactory.java:135)
    at org.gradle.configuration.ProjectScriptTarget.addConfiguration(ProjectScriptTarget.java:79)
    at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:138)
    at org.gradle.configuration.BuildOperationScriptPlugin$1.run(BuildOperationScriptPlugin.java:65)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    .....
    at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)
Caused by: groovy.lang.MissingPropertyException: Could not get unknown property 'aspectjs' for configuration container of type org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.
    at org.gradle.internal.metaobject.AbstractDynamicObject.getMissingProperty(AbstractDynamicObject.java:85)
    at org.gradle.internal.metaobject.AbstractDynamicObject.getProperty(AbstractDynamicObject.java:62)
    at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer_Decorated.getProperty(Unknown Source)
    at build_e85fbj2kcu16qs9elpxyrfj3a$_run_closure3$_closure14.doCall(build.gradle:119)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at org.gradle.util.internal.ClosureBackedAction.execute(ClosureBackedAction.java:73)
    at org.gradle.util.internal.ConfigureUtil.configureTarget(ConfigureUtil.java:155)
    at org.gradle.util.internal.ConfigureUtil.configureSelf(ConfigureUtil.java:131)
    at org.gradle.api.internal.AbstractTask.configure(AbstractTask.java:702)
    at org.gradle.api.DefaultTask.configure(DefaultTask.java:319)
    at org.gradle.api.internal.project.DefaultProject.task(DefaultProject.java:1346)
    at jdk.internal.reflect.GeneratedMethodAccessor208.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:489)
    at org.gradle.internal.metaobject.BeanDynamicObject.tryInvokeMethod(BeanDynamicObject.java:196)
    at org.gradle.internal.metaobject.CompositeDynamicObject.tryInvokeMethod(CompositeDynamicObject.java:98)
    at org.gradle.internal.extensibility.MixInClosurePropertiesAsMethodsDynamicObject.tryInvokeMethod(MixInClosurePropertiesAsMethodsDynamicObject.java:36)
    at org.gradle.groovy.scripts.BasicScript$ScriptDynamicObject.tryInvokeMethod(BasicScript.java:138)
    at org.gradle.internal.metaobject.ConfigureDelegate.invokeMethod(ConfigureDelegate.java:75)
    at build_e85fbj2kcu16qs9elpxyrfj3a$_run_closure3.doCall(build.gradle:118)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at org.gradle.util.internal.ClosureBackedAction.execute(ClosureBackedAction.java:73)
    at org.gradle.util.internal.ConfigureUtil.configureTarget(ConfigureUtil.java:155)
    at org.gradle.util.internal.ConfigureUtil.configureSelf(ConfigureUtil.java:131)
    at org.gradle.api.internal.AbstractTask.configure(AbstractTask.java:702)
    at org.gradle.api.DefaultTask.configure(DefaultTask.java:319)
    at org.gradle.api.DefaultTask.configure(DefaultTask.java:45)
    at org.gradle.util.internal.ConfigureUtil.configure(ConfigureUtil.java:104)
    at org.gradle.api.internal.DefaultNamedDomainObjectCollection$ContainerElementsDynamicObject.tryInvokeMethod(DefaultNamedDomainObjectCollection.java:542)
    at org.gradle.internal.metaobject.CompositeDynamicObject.tryInvokeMethod(CompositeDynamicObject.java:98)
    at org.gradle.internal.extensibility.MixInClosurePropertiesAsMethodsDynamicObject.tryInvokeMethod(MixInClosurePropertiesAsMethodsDynamicObject.java:36)
    at org.gradle.groovy.scripts.BasicScript$ScriptDynamicObject.tryInvokeMethod(BasicScript.java:138)
    at org.gradle.internal.metaobject.AbstractDynamicObject.invokeMethod(AbstractDynamicObject.java:163)
    at org.gradle.api.internal.project.DefaultDynamicLookupRoutine.invokeMethod(DefaultDynamicLookupRoutine.java:58)
    at org.gradle.groovy.scripts.BasicScript.invokeMethod(BasicScript.java:87)
    at build_e85fbj2kcu16qs9elpxyrfj3a.run(build.gradle:117)
    at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:91)
    ... 178 more

以下是我当前的 build.gradle 文件:

buildscript {

    ext {
        // CREDENTIAL CONFIGs
    }


    repositories {
        mavenCentral()
        mavenLocal()
        maven {
           //some repo
        }
        maven {
           //some repo
        }
        maven {
           //some repo
        }
    }

    dependencies {
        /*
        / this statement makes the jacocotestreport run correctly,without it you will get errors regarding certain
        / jacoco classes not being found.
         */
        classpath "io.spring.gradle:dependency-management-plugin:1.0.10.RELEASE"
        classpath "net.researchgate:gradle-release:2.8.1"
        classpath "com.jfrog.artifactory:com.jfrog.artifactory.gradle.plugin:4.27.1"
        classpath ("org.jacoco:org.jacoco.ant:0.8.3")
        classpath("io.freefair.gradle:aspectj-plugin:8.2.2")
    }
}


plugins {
    id 'idea'
    id 'java'
    id 'maven-publish'
    id 'jacoco'
    id("net.researchgate.release") version "2.8.1"
    id("com.jfrog.artifactory") version "4.9.7"
    id("io.spring.dependency-management") version("1.0.10.RELEASE")
    id("io.freefair.aspectj") version "8.2.2"
}

//apply plugin: 'net.researchgate.release'
//apply plugin: 'idea'
//apply plugin: 'java'
//apply plugin: "com.jfrog.artifactory"
//apply plugin: 'maven-publish'
//apply plugin: 'jacoco'
//apply(plugin = "io.freefair.aspectj")

//plugins {
//    id 'idea'
//    id 'java'
//    id 'maven-publish'
//    id 'jacoco'
////    id "com.jfrog.artifactory" version "4.9.7"
////    id 'net.researchgate.release' version '2.6.0'
//    id 'io.spring.dependency-management' version "1.1.4"
//}

sourceCompatibility = 11
targetCompatibility = 11

plugins.withType(JavaPlugin) {
    sourceCompatibility = 1.11
    targetCompatibility = 1.11
}

//aspectj {
//    version = '1.9.8'
//}

configurations.all {
    transitive = false
}

compileJava {
    task myAjcTask(type: io.freefair.gradle.plugins.aspectj.AspectjCompile) {
        aspectjClasspath.setFrom configurations.aspectjs
        ajcOptions {
            inpath = files()
            aspectpath = files()
        }
    }
}

//compileJava {
//    doLast {
////        ant.taskdef( resource:"org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties", classpath: configurations.ajc.asPath)
////        ant.iajc(
////                source:"1.11",
////                target:"1.11",
////                destDir:sourceSets.main.output.classesDirs.getAsPath(),
////                maxmem:"512m", fork:"true",
////                aspectPath:configurations.aspects.asPath,
////                sourceRootCopyFilter:"**/*.java",
////                classpath:configurations.compile.asPath) { // "${configurations.compile.asPath}"
////                    sourceroots {
////                        sourceSets.main.java.srcDirs.each {
////                            srcDir ->
////                            pathelement(location:srcDir.absolutePath)
////                        }
////                    }
////        }
//    }
//}


configurations{
    ajc
    aspects
//    aspectCompile
//    compile {
//        extendsFrom aspects
//    }
}

ext {
    springVersion = "5.3.19"
    springVersionXml = "3.0.9.RELEASE"
    springVersionWs = "3.0.9.RELEASE"
    log4jVersion = "2.17.1"
}

dependencies {
    // aspects
    // https://mvnrepository.com/artifact/io.freefair.lombok/io.freefair.lombok.gradle.plugin
//    implementation 'io.freefair.lombok:io.freefair.lombok.gradle.plugin:8.2.2'
    implementation "org.aspectj:aspectjrt:1.9.8.RC3"
    implementation 'javax.persistence:persistence-api:1.0'
    implementation 'org.aspectj:aspectjweaver:1.9.8'
//    implementation 'org.aspectj:aspectjrt:1.9.8'
//    implementation 'org.aspectj:aspectjtools:1.9.8'
    ajc 'org.aspectj:aspectjtools:1.9.8'
//    aspects 'org.aspectj:aspectjrt:1.9.8'

//    aspects 'javax.persistence:persistence-api:1.0'
    aspects "org.springframework:spring-aspects:${springVersion}"
    aspects "org.springframework:spring-tx:${springVersion}"
    aspects "org.springframework:spring-orm:${springVersion}"


    implementation group: 'javax.transaction', name: 'javax.transaction-api', version: '1.3'
    implementation group: 'javax.cache', name: 'cache-api', version: '1.0.0'

    implementation "org.springframework:spring-tx:${springVersion}"
    implementation "org.springframework:spring-orm:${springVersion}"
    implementation "org.springframework:spring-core:${springVersion}"
    implementation "org.springframework:spring-context:${springVersion}"
    implementation "org.springframework:spring-context-support:${springVersion}"
    implementation "org.springframework:spring-beans:${springVersion}"
    implementation "org.springframework:spring-aop:${springVersion}"
    implementation "org.springframework:spring-expression:${springVersion}"
    implementation "org.springframework:spring-jdbc:${springVersion}"
    implementation "org.springframework:spring-web:${springVersion}"
    implementation "org.springframework:spring-webmvc:${springVersion}"
    implementation "org.springframework:spring-oxm:${springVersion}"
    implementation "org.springframework:spring-aspects:${springVersion}"

    implementation "org.springframework.ws:spring-ws-core:${springVersionWs}"

    implementation ("org.springframework.ws:spring-xml:${springVersionXml}") {
        transitive = false
    }

    implementation 'org.springframework.batch:spring-batch-infrastructure:2.1.9.RELEASE'

    implementation 'javax.servlet:javax.servlet-api:3.0.1'
    implementation 'com.fasterxml.jackson.core:jackson-core:2.11.0'
    implementation 'com.fasterxml.jackson.core:jackson-databind:2.11.0'
    implementation 'com.fasterxml.jackson.core:jackson-annotations:2.11.0'
    implementation 'aopalliance:aopalliance:1.0'
    implementation 'cglib:cglib-nodep:2.2'

    implementation 'commons-configuration:commons-configuration:1.6'
    implementation 'commons-collections:commons-collections:3.2.1'
    implementation 'commons-logging:commons-logging:1.1.1'
    implementation "commons-codec:commons-codec:1.14"
    implementation 'commons-lang:commons-lang:2.5'
//    implementation 'commons-codec:commons-codec:1.7'
//    implementation 'commons-lang:commons-lang:2.5'

//    implementation 'org.apache.commons:commons-math:2.1'
    implementation 'commons-httpclient:commons-httpclient:3.1'
    implementation 'commons-io:commons-io:2.5'

    implementation 'com.google.guava:guava:28.2-jre'
    implementation 'com.google.guava:failureaccess:1.0.1'
    implementation "org.apache.logging.log4j:log4j-slf4j-impl:${log4jVersion}"
    implementation "org.apache.logging.log4j:log4j-core:${log4jVersion}"
    implementation "org.apache.logging.log4j:log4j-api:${log4jVersion}"
    implementation "org.apache.logging.log4j:log4j-1.2-api:${log4jVersion}"
    implementation 'org.slf4j:slf4j-api:1.7.30'
    implementation 'org.slf4j:slf4j-log4j12:1.7.5'

    implementation 'org.apache.xmlrpc:xmlrpc-client:3.1.3'
    implementation 'org.apache.xmlrpc:xmlrpc-common:3.1.3'

    implementation 'org.apache.ws.commons.util:ws-commons-util:1.0.2'
    
    implementation 'org.mybatis:mybatis:3.1.1'
    implementation 'org.mybatis:mybatis-spring:1.1.1'

    implementation "com.mchange:c3p0:0.9.5.5"
    implementation "com.mchange:mchange-commons-java:0.2.10" // the bean creation issue- no
    implementation "net.sourceforge.jtds:jtds:1.3.1"

    implementation 'com.sun.mail:javax.mail:1.4.5'
    implementation 'javax.validation:validation-api:1.0.0.GA'
    implementation 'org.hibernate:hibernate-validator:4.2.0.Final'
    implementation 'net.sf.ehcache:ehcache-core:2.6.5'
    implementation 'joda-time:joda-time:2.9.7'
    
    implementation 'org.jasypt:jasypt:1.9.0'
    implementation 'org.jasypt:jasypt-spring3:1.9.0'
    implementation "org.bouncycastle:bcprov-jdk15on:1.47"

    implementation 'com.codahale.metrics:metrics-core:3.0.0'
    implementation 'com.codahale.metrics:metrics-annotation:3.0.0'
    implementation 'com.codahale.metrics:metrics-ehcache:3.0.0'
    implementation 'com.codahale.metrics:metrics-jvm:3.0.0'
    implementation 'com.codahale.metrics:metrics-servlet:3.0.0'
    implementation 'com.codahale.metrics:metrics-servlets:3.0.0'
    implementation 'com.codahale.metrics:metrics-healthchecks:3.0.0'
    implementation 'com.codahale.metrics:metrics-httpclient:3.0.0'
    implementation 'com.codahale.metrics:metrics-json:3.0.0'

    implementation "org.apache.httpcomponents:httpclient:4.5.2"
    implementation 'org.apache.httpcomponents:httpcore:4.4.4' // compile dependency of the httpclient
    implementation "org.apache.httpcomponents:httpcore:4.4.5"
    implementation "org.apache.httpcomponents:httpcore-nio:4.4.5"
    implementation "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.8.11"
//
    implementation "com.amazonaws:aws-java-sdk:1.11.653"
    implementation "com.amazonaws:aws-java-sdk-core:1.11.653"
    implementation "com.amazonaws:aws-java-sdk-secretsmanager:1.11.653"
//    implementation "com.amazonaws:jmespath-java:1.11.653"
//
    
    
//    implementation "org.apache.httpcomponents:httpasyncclient:4.1.2"
    

    // javax.xml.bind/jaxb-api has migrated to jakarta.xml.bind/jakarta.xml.bind-api
    implementation "jakarta.xml.bind:jakarta.xml.bind-api:4.0.1"
    implementation 'jakarta.activation:jakarta.activation-api:2.1.2'
    implementation "jakarta.annotation:jakarta.annotation-api:2.1.1"

//  Test dependencies below
    testImplementation 'org.jmockit:jmockit:1.24'
    testImplementation 'junit:junit:4.12'
    testImplementation 'org.hamcrest:hamcrest-core:1.3'
    testImplementation "org.springframework:spring-test:${springVersion}"
    testImplementation "com.h2database:h2:1.3.171"

    testImplementation 'org.mockito:mockito-core:3.0.0'
//    testImplementation 'org.mockito:mockito-all:1.8.5'
    testImplementation "org.mock-server:mockserver-netty:5.10.0"
    testImplementation "org.mock-server:mockserver-core:5.10.0"
    testImplementation "org.mock-server:mockserver-client-java:5.10.0"

    // Testing group 1
//    testImplementation "com.lmax:disruptor:3.4.2"
//    testImplementation "io.netty:netty-buffer:4.1.47.Final"
//    testImplementation "io.netty:netty-resolver:4.1.47.Final"
//    testImplementation "io.netty:netty-common:4.1.47.Final"
//    testImplementation "io.netty:netty-codec:4.1.47.Final"
//    testImplementation "io.netty:netty-codec-http:4.1.47.Final"
//    testImplementation "io.netty:netty-codec-socks:4.1.47.Final"
//    testImplementation "io.netty:netty-common:4.1.47.Final"
//    testImplementation "io.netty:netty-transport:4.1.47.Final"
//    testImplementation "io.netty:netty-handler:4.1.47.Final"
//    testImplementation "io.netty:netty-handler-proxy:4.1.47.Final"
//    testImplementation "com.jcraft:jzlib:1.1.3"
//    testImplementation "org.apache.velocity:velocity-engine-scripting:2.1"
//    testImplementation "org.apache.velocity:velocity-engine-core:2.1"
//    testImplementation "net.javacrumbs.json-unit:json-unit-core:2.14.0"
//    testImplementation "org.opentest4j:opentest4j:1.1.1"
//    testImplementation "org.hamcrest:hamcrest-core:2.1"
//    testImplementation "com.github.java-json-tools:json-schema-validator:2.2.11"
//    testImplementation "com.github.java-json-tools:json-schema-core:1.2.10"
//    testImplementation "com.github.java-json-tools:jackson-coreutils:1.9"
//    testImplementation "com.github.fge:msg-simple:1.1"
//    testImplementation "com.github.fge:btf:1.2"
//    testImplementation "com.google.code.findbugs:jsr305:2.0.1"
//    testImplementation "com.github.fge:uri-template:0.9"
//    testImplementation "org.mozilla:rhino:1.7.7.1"
//    testImplementation "com.sun.mail:mailapi:1.6.1"
//    testImplementation "javax.activation:activation:1.1"
//    testImplementation "com.googlecode.libphonenumber:libphonenumber:8.0.0"
//    testImplementation "net.sf.jopt-simple:jopt-simple:5.0.3"
//    testImplementation "com.jayway.jsonpath:json-path:2.4.0"
//    testImplementation "net.minidev:json-smart:2.3"
//    testImplementation "net.minidev:accessors-smart:1.2"
//    testImplementation "org.ow2.asm:asm:5.0.4"


    testImplementation "org.xmlunit:xmlunit-core:2.6.4"
    testImplementation "org.xmlunit:xmlunit-placeholders:2.6.4"
//    testImplementation "org.apache.commons:commons-lang3:3.12.0"
//    testImplementation "org.apache.commons:commons-text:1.8"
//    testImplementation "commons-codec:commons-codec:1.14"


    testImplementation 'org.unitils:unitils-core:3.4.2'
    testImplementation('ognl:ognl'){ // need
        version {
            strictly "2.6.7"
        }
    }
}

//release {
//    tagTemplate = 'fxmp-common-libs-${version}'
//
//    git {
//        requireBranch = null
//    }
//}

//publishing {
//    publications {
//        mavenJava(MavenPublication) {
//            from components.java
//            groupId = 'somegroup'
//            artifactId = 'fxmp-common'
//        }
//    }
//}

configurations {
    includeInJar
    implementation.extendsFrom includeInJar
}

jacoco {
    toolVersion = "0.8.3+"
}

//jacocoTestReport {
//    jacocoClasspath = project.buildscript.configurations.classpath
//
//    reports {
//        html.enabled = true
//        xml.enabled = true
//        csv.enabled = false
//    }
//
//    onlyIf = {
//        true
//    }
//}

test {
    ArrayList patterns = new ArrayList()
    // Excluding FXRS JAXB classes
    patterns.add("**somedir/*.java")

    excludes = patterns

    exclude '**/*IntTest.*'
    exclude '**/PayOpReconClientTest.class'
}

//task integrationTest(type: Test) {
//    filter {
//        includeTestsMatching "*IntTest*"
//        includeTestsMatching "*PayOpReconClientTest"
//    }
//
//    testClassesDirs = sourceSets.test.output.classesDirs
//    classpath = sourceSets.test.runtimeClasspath
//}
//
task testJar(type: Jar) {
    archiveClassifier = 'tests'
    from sourceSets.test.output
}

task sourcesJar(type: Jar) {
    from sourceSets.main.allSource
    archiveClassifier = 'sources'
}

artifacts {
    archives(jar)
    archives(sourcesJar){ type = 'source'}
    archives(testJar){ type = 'test'}
}

wrapper {
    gradleVersion = '8.2'
}

以下版本: 爪哇:11.0.19 方面J:1.9.8 io.freefair.aspectj:8.2.2

java gradle aspectj freefair-aspectj
1个回答
0
投票

您是否阅读了引起异常的错误消息?

Caused by: groovy.lang.MissingPropertyException:
  Could not get unknown property 'aspectjs' for configuration container
  of type org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.

也许从 Freefair 手册中复制和粘贴太困难了。应该是

configurations.aspectj
,而不是
aspectjs

© www.soinside.com 2019 - 2024. All rights reserved.