6

由 buildSrc/build.gradle 编译的类在主 PROJECT 类中使用时不会在运行时解析。

My Groovy project structure looks like this:
-PROJECT
    -buildSrc/
        -build.gradle
        -/src/main/groovy
            - com.company.global.test.report
    -src/test/groovy
    -build.gradle

有什么我可以添加到顶级 PROJECT/build.gradle 以允许它编译的类使用 buildSrc/build.gradle 编译的类吗?

4

2 回答 2

4

buildSrc是它自己的构建(不是项目),在主构建之前执行。它的唯一目的是使一些类(插件、任务、常规类)可用于主构建的构建脚本。因此,您可以将其称为“元构建”。

从技术上讲,可以buildSrc在主构建中将已编译的类添加到项目的编译或运行时类路径中,但我不建议这样做。很可能有更好的方法来实现你的目标(但我不知道那些是什么)。

于 2013-04-10T16:13:19.063 回答
2

以下是使用 Gradle 的方法2.12

your_project/buildSrc/build.gradle

task sourcesJar(type: Jar, dependsOn: classes) {
  classifier = 'sources'
  from sourceSets.main.allSource
}

// Thanks to this, IDE like IntelliJ will provide you with "Navigate to sources"
artifacts {
  archives sourcesJar
}

your_project/build.gradle

ext.buildSrcJars = fileTree("$rootDir/buildSrc/build/libs") { include("*.jar") exclude("*sources.jar")}

// Works in every subproject
dependencies {
    compile buildSrcJars
}
于 2016-04-15T12:49:58.343 回答