首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么不在导入的Gradle脚本中导入工作?

为什么不在导入的Gradle脚本中导入工作?
EN

Stack Overflow用户
提问于 2016-04-03 12:42:10
回答 1查看 1.6K关注 0票数 2

Gradle (OSX上的2.12版本)无法在下面的示例中找到Grgit的定义,除非git.gradle的内容被复制到build.gradle中。如何在不丢失git.gradle的情况下修复此错误?

build.gradle

代码语言:javascript
复制
buildscript {
  repositories {
    jcenter()
  }
  dependencies {
    classpath 'org.ajoberstar:gradle-git:1.4.2'
  }
}

apply from: 'git.gradle'

git.gradle

代码语言:javascript
复制
import org.ajoberstar.grgit.* 

task clone << {
  Grgit.clone(dir: file('build/repo'), uri: 'git@github.com:user/repo.git')
}

这是输出:

代码语言:javascript
复制
$ gradle clone
...
Execution failed for task ':clone'.
> Could not find property 'Grgit' on task ':clone'.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-03 14:35:30

找到解决办法:将Grgit添加为ExtraPropertiesExtension project.ext,将其公开给导入的Gradle脚本。(不确定是否有更清洁的方法.)

build.gradle

代码语言:javascript
复制
buildscript {
  repositories {
    jcenter()
  }
  dependencies {
    classpath 'org.ajoberstar:gradle-git:1.4.2'
  }
}

// expose Grgit to `git.gradle`
project.ext.Grgit = org.ajoberstar.grgit.Grgit

apply from: 'git.gradle'

git.gradle

代码语言:javascript
复制
// no import needed here

task clone << {
  Grgit.clone(dir: file('build/repo'), uri: 'git@github.com:user/repo.git')
}

撇开:通过应用gradle-git,插件自动project.ext.grgit。如果您只需要使用当前项目的Git,就不需要公开来自build.gradlebuild.gradlegit.gradle可能如下所示:

代码语言:javascript
复制
apply plugin: 'org.ajoberstar.grgit'

task commitReadme << {
  grgit.add(patterns: ['README.md'])
  grgit.commit(message: "Update README for ${rootProject.version}")
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36385526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档