源树如下:
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作为依赖项编译和构建根项目。
当我尝试检查并再次检出整个项目时问题就出现了。我做了以下事情:
我可以在.gitmodules
和box-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
构建
请帮忙
答案 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子模块命令)。