git子模块的build.gradle更改

时间:2014-01-27 04:20:15

标签: git maven ant gradle

源树如下:

core               // root
  .gitmodules     // this has box-sdk as submodule
  box-sdk          // git submodule
     BoxJavaLibraryV2     // Box related files

我还创建了settings.gradle

include 'box-sdk:BoxJavaLibraryV2'

我的build.gradle

compile project(':box-sdk:BoxJavaLibraryV2')

此时我能够使用box作为依赖项编译和构建根项目。

当我尝试检查并再次检出整个项目时问题就出现了。我做了以下事情:

我可以在.gitmodulesbox-sdk directory办理登机手续。但我无法签入BoxJavaLibraryV2。

It errored out saying BoxJavaLibraryV2 is a submodule

我再次检查root,我得到了.gitmodules和box-sdk(没有BoxJavaLibraryV2)

然后构建我的项目我必须手动完成:

git submodule init
git submodule update
gradle war

我需要做些什么更改以及在哪里消除初始化和更新步骤。

我在寻找的是:

当我结帐git master时,包含子模块的整个项目应使用gradle war构建

请帮忙

1 个答案:

答案 0 :(得分:4)

首先,您只能有一步:

git submodule update --init --recursive

其次,Gradle本身有一个未解决的问题(自2010年起),以整合该步骤:
GRADLE-21: "Streamline issues with including the build as a git submodule"

git clone --recursive会克隆:检出您的repo 并检出子模块。

该问题提出了各种方法,其中一种方法是创建一个gradle包装器(在调用gradle之前调用相应的git子模块命令)。