我有两个包含 Java Maven 项目的存储库:
- 一个包含具有核心功能的项目,仅依赖于其中的其他项目或依赖于公共库
- 一个包含依赖于第一个存储库中某些项目的项目
我已经设置了一个 Github Action 来使用 maven on pull 编译每个存储库。首先,这没有问题。对于第二个,这不起作用,因为在构建第二个存储库时,第一个存储库的项目在环境中不可用于 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
有没有办法在第二个存储库中使用第一个存储库的构建而不再次构建它?
我想这不是一个独特的问题,必须有一个最佳实践解决方案。