为什么';无法在导入的Gradle脚本中导入工作?

为什么';无法在导入的Gradle脚本中导入工作?,gradle,build.gradle,Gradle,Build.gradle,Gradle(OSX上的v2.12)在以下示例中找不到Grgit的定义,除非git.Gradle的内容被复制到build.Gradle中。如何在不丢失git.gradle的情况下修复此错误 build.gradle buildscript { repositories { jcenter() } dependencies { classpath 'org.ajoberstar:gradle-git:1.4.2' } } apply from: 'git.grad

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

build.gradle

buildscript {
  repositories {
    jcenter()
  }
  dependencies {
    classpath 'org.ajoberstar:gradle-git:1.4.2'
  }
}

apply from: 'git.gradle'
import org.ajoberstar.grgit.* 

task clone << {
  Grgit.clone(dir: file('build/repo'), uri: 'git@github.com:user/repo.git')
}
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'
// no import needed here

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

buildscript {
  repositories {
    jcenter()
  }
  dependencies {
    classpath 'org.ajoberstar:gradle-git:1.4.2'
  }
}

apply from: 'git.gradle'
import org.ajoberstar.grgit.* 

task clone << {
  Grgit.clone(dir: file('build/repo'), uri: 'git@github.com:user/repo.git')
}
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'
// no import needed here

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

找到了一个解决方法:将
Grgit
添加为
project.ext
以将其公开给导入的Gradle脚本。(不确定是否有更干净的方法来进行此操作…)

build.gradle

buildscript {
  repositories {
    jcenter()
  }
  dependencies {
    classpath 'org.ajoberstar:gradle-git:1.4.2'
  }
}

apply from: 'git.gradle'
import org.ajoberstar.grgit.* 

task clone << {
  Grgit.clone(dir: file('build/repo'), uri: 'git@github.com:user/repo.git')
}
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'
// no import needed here

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

buildscript {
  repositories {
    jcenter()
  }
  dependencies {
    classpath 'org.ajoberstar:gradle-git:1.4.2'
  }
}

apply from: 'git.gradle'
import org.ajoberstar.grgit.* 

task clone << {
  Grgit.clone(dir: file('build/repo'), uri: 'git@github.com:user/repo.git')
}
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'
// no import needed here

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

也许您可以尝试将Grgit保存到build.gradle中的ext变量中,然后在git.gradle中使用它
ext.gg=Grgit
然后在git.gradle中,
gg.clone(…
@RaGe,谢谢!我真的弄明白了,我正在键入答案。