如何使用 Bitbucket 管道构建依赖项目

Posted

技术标签:

【中文标题】如何使用 Bitbucket 管道构建依赖项目【英文标题】:How to build dependent projects using Bit Bucket pipeline 【发布时间】:2018-03-12 07:02:08 【问题描述】:

我正在尝试使用 maven 让我的构建与管道一起工作。我有两个用于两个 Maven 项目的存储桶存储库。存储库1-> 项目1 存储库2-> 项目2。 project2 依赖于 project1。现在我在构建 project1 时没有问题,因为它不依赖任何项目。但是当我尝试使用管道构建 project2 时,构建失败了,因为 maven 没有找到 project1 工件。

我知道每个管道都在一个 docker 映像中运行。所以我的猜测是 project1 和 project2 的管道在 2 个单独的 docker 映像中运行。因此,当我为 project2 运行管道时,maven 没有在本地存储库中找到 project1 工件。解决此问题的一种方法是为我的项目工件托管一个 Maven 远程存储库,并将该存储库添加到 project2 的 POM 中。但我不想托管一个 Maven 回购。我希望 maven 从本地仓库中挑选工件。如何让它发挥作用?

【问题讨论】:

您是否使用存储库管理器来分发构建工件,就像您通过构建 project1 创建的工件一样? @khmarbaise 抱歉,我是 bitbucket 的新手。我不确定您在说什么“存储库管理器”。你能详细说明一下吗?我的问题是我的两个项目在 2 separte repos 中。因此,当 project2 管道尝试构建它时,它没有 project1 工件依赖项。我生成的工件仅存储在本地仓库中 是在 bitbucket 本身上构建还是在公司内部构建还是只是私有的? 它是我试图在 bitbucket 上构建的私人仓库 【参考方案1】:

很抱歉,没有人为您回答过这个问题。设置 BitBucket Pipelines 以使用私有 maven 存储库需要您在管道中创建自定义 settings.xml 文件,然后使用指定的文件调用 maven。

您不能只将 settings.xml 文件放在源代码存储库中,因为这会使您的凭据面临风险。相反,您可以创建一个 settings.xml 文件并从 BitBucket Pipelines Secure 环境变量中设置凭据。

一旦您看到它的实际效果,它就非常简单。我实际上写了一个extensive guide on how to completely setup BitBucket Pipelines with Maven repositories,专门展示了如何以安全的方式做到这一点。

【讨论】:

感谢您的回复,我会尝试并让您知道。如果我没有任何私人工件回购,再次确定此解决方案是否有效?这样依赖的工件将从本地 .m2/repository 文件夹中挑选出来吗? 我的要求是先构建 Project1 并将其存储到 .m2/repository 文件夹中。当 project2 开始构建时,它应该从 ./m2/repository 中选择 project1 依赖项,因为我们没有公司范围的存储库

以上是关于如何使用 Bitbucket 管道构建依赖项目的主要内容,如果未能解决你的问题,请参考以下文章

Bitbucket管道.net部署

带有 docker 容器的 bitbucket 管道

如何在 Azure CI 管道中手动添加“脚本”?

composer缓存不适用于bitbucket管道构建

Bitbucket Angular npm 运行构建失败

如何从 bitbucket-pipelines.yml 执行 git push?