gpt4 book ai didi

java - 如何配置 github 操作以使用 Maven 进行编译并依赖于其他私有(private)存储库?

转载 作者:行者123 更新时间:2023-11-30 05:29:29 25 4
gpt4 key购买 nike

我有两个包含 Java Maven 项目的存储库:

  • 包含具有核心功能的项目,仅依赖于其中的其他项目或公共(public)库
  • 包含依赖于第一个存储库中的某些项目的项目

我设置了一个 Github Action,以在 pull 时使用 Maven 来编译每个存储库。首先,这是没有问题的。对于第二个,这不起作用,因为在构建第二个存储库时,第一个存储库的项目在环境中不可用于 Maven。

我有两个想法来解决这个问题

  • 在第二个存储库中创建一个子模块以包含第一个子模块
  • 另外检查第一个存储库构建中的第一个存储库

两种解决方案都可能有效,但最终需要所有构建时间来额外构建第一个存储库。

这是 Github 操作(当前在两个存储库中相同):

name: Java CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Build with Maven
run: mvn package --file pom.xml

是否有某种方法可以在第二个存储库中使用第一个存储库的构建,而无需再次构建它?

我认为这不是一个独特的问题,并且必须有一个最佳实践解决方案。

最佳答案

Is there some way to use the build of the first repository in the second repository without building it againg?

我认为没有任何这样的功能可以在不同存储库中的工作流程之间共享构建输出。在我看来,最佳实践是从第一个项目中发布版本化 Artifact ,第二个项目依赖该项目并可以从 Maven 存储库获取该 Artifact 。

也许您不想将 Artifact 发布到公共(public) Maven 存储库,并且您可能无权访问私有(private)存储库。在这种情况下,您可以使用 GitHub Package Registry。它目前处于测试阶段,因此如果您还没有访问权限,则需要注册。这将允许您创建一个私有(private) Maven 存储库来共享版本化 Artifact 。

https://github.com/features/package-registry

关于java - 如何配置 github 操作以使用 Maven 进行编译并依赖于其他私有(private)存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57871211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com