maven 如何从一个项目更新另一个项目

h5qlskok  于 11个月前  发布在  Maven
关注(0)|答案(3)|浏览(145)

在我的Gitlab安装中,我有一个库项目,它创建了一个Java jar文件,我想在其他项目中使用。我希望每当我在jar库中进行更改时,都能够更新另一个项目。
我正在使用Maven编译和打包jar文件,我也在另一个项目的管道中使用Maven。jar文件和应用程序jar都是管道生成的工件。我相信我应该能够自动将库jar从其目标文件夹复制到我的依赖项目使用的文件夹中。
问题是,我不知道如何做到这一点。我读了很多关于Gitlab的CI/CD文档,却找不到任何关于如何更新一个项目以使其可以使用从另一个项目生成的库的信息。
以前有人这么做过吗?有谁能告诉我,当我在库项目中对jar进行更改时,如何更新我的应用程序项目?

ngynwnxp

ngynwnxp1#

考虑到你所描述的场景,一个好的方法是使用多项目管道。如果你的项目看起来像这样:

  • 项目A:打包并上传jar到Gitlab
  • 项目B:下载项目A生成的软件包

然后,通过使用多项目管道,您可以在项目B上触发一个新的管道,只要工件被创建,确保它存在,并且您的管道不会因为竞争条件而中断。此外,您甚至可以直接从项目A管道获取生成的工件,而不必从任何Package Registry读取。
所有相关文档都可以在这里找到

46scxncf

46scxncf2#

@bhito有一个很好的答案,我会补充几个字。
最好是将所有的工件从PROJECT_X(比如你的Jar文件)推入注册表(比如Artifactory,Nexus等),并使用相应的具体版本。然后,在PROJECT_Y中指定一个依赖于该版本的对象,这样就可以通过git-committing触发项目的流水线,而无需构建复杂的GitLab下游流水线。

lvmkulzt

lvmkulzt3#

据我所知,你有两个独立的项目。让我们称之为“library_project”和“main_project”。
你需要做的第一件事是发布“library_project”。要做到这一点,你有两个选择:

之后,您需要配置“main_project”以使用该库。为此,您需要执行两个步骤:

  • 通过更新maven设置,配置Maven以从注册表读取您的库发布:
  • 对于GitLab,您可以遵循相同的指南:https://docs.gitlab.com/ee/user/packages/maven_repository/
  • 对于本地发布的库,您可能需要在离线模式下构建“main_project”。意思是:mvn -o clean package。请注意,任何尚未下载的依赖项将在离线模式下失败。这里有一个指南,其中包含更多细节:https://www.baeldung.com/maven-offline
  • 一旦您配置了您的设置,您就可以将该库作为任何其他库导入

相关问题