【发布时间】:2018-03-18 18:26:28
【问题描述】:
我有一个 Gradle 项目,它由一个主项目和另外两个包含使用 includeFlat 指令的项目组成。这 3 个项目中的每一个在 GitHub 上都有自己的存储库。为了构建它,我将所有 3 个项目检入到一个通用的顶级文件夹中,然后将cd 检入主项目并运行gradle build。而且效果很好!
现在我需要将生成的应用程序部署到 AWS EB (Elastic Beanstalk),当我在本地生成工件然后手动部署它时,它也很有效。我想自动化该过程,因此我尝试使用 CodePipelines + Jenkins 进行设置,如 this document 中所述,针对 Gradle 进行了调整。
问题是,如果我在管道中指定 3 个源,我最终会将我的项目提取到彼此之上,从而在 Jenkins 工作区中造成混乱。我需要以某种方式将每个项目配置为输出到 Jenkins 工作区中自己的目录,我只是看不到这样做的方法(至少在 UI 中)
然后,当然,即使我实现了我想要的,我也需要以某种方式将cd 进入主目录以运行gradle build,但我不知道该怎么做
附: @Phil 的好建议,但不幸的是 CodePipeline does not currently support Git 子模块或子树
【问题讨论】:
-
你不能使用像 git 子模块这样的东西吗? git-scm.com/docs/gitsubmodules
-
有趣的想法,虽然我更喜欢扁平的项目结构
-
但是你不是已经为每个项目都有单独的回购了吗?您可以创建另一个父项目,将它们全部作为子模块包含在自己的目录中,并将其用于您的构建
-
所以问题是我无法控制 CodePipeline 如何调用
git clone并且我的子模块有空文件夹。有一个--recursive开关,但如何应用它?附:不好看forums.aws.amazon.com/thread.jspa?threadID=248267 -
在 AWS 论坛 forums.aws.amazon.com/thread.jspa?threadID=265274 上链接回同一问题
标签: github jenkins gradle amazon-elastic-beanstalk aws-codepipeline