groovy - 如何在自定义类中使用构建脚本依赖项?

标签 groovy gradle build-script

我在构建脚本中使用了几个帮助器类,文件夹结构如下所示

buildSrc    
  -src   
     -main    
       -groovy
           GitUtils.groovy
build.gradle

在 GitUtils 中,我尝试导入自定义库中使用的几个类(本示例中来自 grgit 和 http-builder)。但它不起作用,我收到“无法解析类 XXX”异常。如果这些类位于 build.gradle 中,则可以很好地解析。

build.gradle的相关部分:

buildscript {    
  repositories {
    jcenter()
    mavenCentral()
  }
  dependencies {
    classpath 'org.ajoberstar:grgit:1.3.0'
    classpath 'org.codehaus.groovy.modules.http-builder:http-builder:0.7.1'
  }
}

dependencies {
  compile 'org.ajoberstar:grgit:1.3.0'
  compile 'org.codehaus.groovy.modules.http-builder:http-builder:0.7.1'
}

...
GitUtils.doStuff();

最佳答案

干净的解决方案是在 buildSrc/build.gradle 文件中声明 GUtils 中的依赖项:

apply plugin:'groovy'

repositories {
  jcenter()
  mavenCentral()
}
dependencies {
  compile gradleApi()
  compile 'org.ajoberstar:grgit:1.3.0'
  compile 'org.codehaus.groovy.modules.http-builder:http-builder:0.7.1'
}

关于groovy - 如何在自定义类中使用构建脚本依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31345746/

相关文章:

gradle - Gradle:使用目录变量

objective-c - 链接到需要框架的静态库

与 sumproduct 等效的 Groovy 或 Java?

groovy - 如何获取 Gradle 子项目的拓扑排序列表?

java - 使用Gradle的AWS Dev env设置

go - 是否有规范的方法将构建脚本添加到 Go 项目?

php - Phing复制文件夹内容

mongodb - 在 Grails 和 CloudBees 中使用 MongoDB

java - 高负载下 Groovy Shell 解释器中的锁争用

Gradle 'processTestResources' 任务不复制文件