gradle - 通过提供身份验证在任务中克隆 git 存储库

标签 gradle

我想在我的系统中克隆一个私有(private)存储库。我可以克隆 公众 repo 使用:

def myrepo = org.ajoberstar.grgit.Grgit.clone(dir:'', uri:'')

但如果是私有(private) repo ,我需要提供克隆凭证。我经历过这个link ,但此处给出的属性如 Force , Hardcoded在我的 gradle 中不可用。所以,我无法使用这里给出的属性。

以下属性可供我使用:
org.ajoberstar.grgit.auth.AuthConfig.FORCE_OPTION
org.ajoberstar.grgit.auth.AuthConfig.USERNAME_OPTION
org.ajoberstar.grgit.auth.AuthConfig.PASSWORD_OPTION

如果我给这些值任何值,我会得到错误 Cannot assign value to final fields
任何人都可以帮助认证部分吗?

我正在使用依赖 org.ajoberstar:grgit:1.3.0 .

最佳答案

您提供的链接明确指出 系统属性需要用来传递适当的设置。

因此,您需要通过命令行运行 gradle 并传递所有属性。假设这是 build.gradle文件:

buildscript {
   repositories {
      mavenCentral()
   }
   dependencies {
     classpath 'org.ajoberstar:grgit:1.3.0'
   }
}

task cloneRepo << {
   org.ajoberstar.grgit.Grgit.clone(dir: '', uri: '<link to private repo>')
}

运行它:
gradle cloneRepo -Dorg.ajoberstar.grgit.auth.username=your_username -Dorg.ajoberstar.grgit.auth.password=your_pass -Dorg.ajoberstar.grgit.auth.force=sshagent

关于gradle - 通过提供身份验证在任务中克隆 git 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34715981/

相关文章:

java - 使用Jenkins和Gradle运行Flyway迁移-无法解析位置classpath:db/migration

android - 应用程序的构建类型在哪里定义?

android - 如何通过 Gradle 将 Fresco 源代码添加到另一个项目中

testing - 使用 Gradle : NoClassDefFoundError TableTestingKt 进行表驱动测试

gradle - 如何将属性部分添加到 gradle 生成的 pom 文件中?

gradle - 兼容Android Studio 3.0的Gradle构建工具

java - 没有可离线使用的 3.6.0 缓存版本

java - 删除 Gradle 默认源集

gradle - 将 ant signJar 任务转换为 gradle

java - 在一个 jenkins 作业中编译和运行不同的 jdk