我正在尝试按照 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
您是否阅读了引起异常的错误消息?
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
。