Gradle:如何通过gradle执行git pull?

Doj*_*ojo 9 java git build gradle

我想在编译开始之前从git repo中提取更改.我找到了这个Gradle:如何在任务中克隆git repo?,但它克隆了repo而不是只获取更改.如果git服务器不在本地网络上或者repo很大,这可能会很费时间.

我找不到如何git pull使用gradle或gradle-git插件.

Ser*_*kyi 10

您可以创建Exec任务并运行任何shell/cmd命令.简单任务不需要额外的插件依赖性.

task gitPull(type: Exec) {
    description 'Pulls git.'
    commandLine "git", "pull"
}
Run Code Online (Sandbox Code Playgroud)

用法: gradlew gitPull

你应该看到像这样的smth:

gradlew gitPull 
Parallel execution is an incubating feature.
:app:gitPull 
Already up-to-date.

BUILD SUCCESSFUL

Total time: 9.232 secs
Run Code Online (Sandbox Code Playgroud)

命令Already up-to-date.的输出在哪里git pull.


Opa*_*pal 7

以下 gradle 脚本应该会有所帮助:

import org.ajoberstar.grgit.*

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

task pull << {
   def grgit = Grgit.open(dir: project.file('.'))
   grgit.pull(rebase: false)
}
Run Code Online (Sandbox Code Playgroud)