Gradle在编织AspectJ时添加子模块Src路径[ant:iajc] [错误]构建配置错误:错误的sourceroot:/ Users / abcd / mainApp / src / main / java

问题描述

我为具有以下结构的Java项目设置了多模块。

mainApp
|--> core-module
|       |--> src
|       |--> build.gradle
|       
|--> lib-module
|       |--> src
|       |--> build.gradle
|--> lib-another-module
|       |--> src
|       |--> build.gradle
| 
|--> settings.gradle
|--> build.gradle
|--> gradle.properties

在我提到的mainApp/build.gradle

compileJava {
    //dependsOn configurations.ajc.getTaskDependencyFromProjectDependency(true,"compileJava")

    doLast{
        ant.taskdef( resource:"org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties",classpath: configurations.ajc.asPath)

        ant.iajc(
                maxmem: "1024m",fork: "true",Xlint: "ignore",destDir: sourceSets.main.output.classesDirs.asPath,aspectPath: configurations.aspects.asPath,sourceRootCopyFilter: "**/.svn/*,**/*.java",classpath: configurations.compile.asPath,source: project.sourceCompatibility,target: project.targetCompatibility
        ){
            sourceroots{
                sourceSets.main.java.srcDirs.each{
                    pathelement(location:it.absolutePath)
                }
            }
        }
    }
}

我收到[ant:iajc] [error] build config error: bad sourceroot: /Users/abcd/mainApp/src/main/java的错误消息

如何将sub-module src指向sourceroots{}

解决方法

我可以解决问题。基本上我的根项目没有任何源代码(它只是父Gradle模块容器),因此需要从sourceRoots

中省略
sourceroots{
    sourceSets.main.java.srcDirs.each{
        if(!it.absolutePath.contains("/src/main/java")) {
             pathelement(location: it.absolutePath)
    }
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...