是否可以在主Groovy项目中使用由Gradle buildSrc编译的类?

时间:2013-04-10 15:52:23

标签: groovy build gradle

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编译的类吗?

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

以下是使用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
}