我很擅长使用Maven,来自蚂蚁背景。我一直试图找出处理Maven中我的公司项目和发布流程的“正确”方法,但实际上并没有得到直接的答案。
我们将项目作为几个核心共享库,以及它们处理的应用程序。所以我们说:
Library A -- produces library-a.jar
Library B -- produces library-b.jar
Project C -- produces project-c.war
我们使用常见的gitflow功能分支方法。为了让我的问题更有意义,我将在发布期间提供示例工作流程。假设我们正在制作2张票(同时)。
Ticket A (feature/A-Some-New-Thing).
>> Requires changes to Library A and Project C
Ticket B (feature/B-Some-Other-New-Thing).
>> Only requires changes to Project C
每个项目都是这样的:
- master
|- develop
|- feature/A-Some-New-Thing
|- feature/B-Some-Other-New-Thing
将在分支上构建下一版本的多个功能。通常,功能/ A-Some-New-Thing将存在于Library A和Project C存储库中。设置maven / external存储库(我们正在查看Archiva)的最佳方法是使用Library A快照和Project C快照进行功能/ A构建,但是在构建时使Project C使用最新版本(上一版,不是当前快照)。
完整的最终目标是让它在CI环境(竹子)中工作,找出构建和测试的正确依赖性