我正在尝试创建一种方法,可以在仍然依赖项目中的SNAPSHOT依赖项的同时实现密码构建.
出于举例的目的,假设我有一个具有如下依赖结构的项目:
? other-1.2-SNAPSHOT
mine-1.2.3 ???
? thing-3.1-SNAPSHOT ?? gizmo-6.1.3-SNAPSHOT
Run Code Online (Sandbox Code Playgroud)
我想要做的是将所有SNAPSHOT依赖项本地解析为与我当前版本相关的内容,然后将这些作为发行版部署到我的Nexus发布存储库.并非所有这些依赖都是内部的,所以我不能简单地在每个上发布.
所以,在这个例子中,other-1.2-SNAPSHOT会成为像other-1.2-mine-1.2.3和thing-3.1-SNAPSHOT会成为thing-3.1-mine-1.2.3.这在大约60行python中相对微不足道.
然而,问题在于将传递SNAPSHOT解析为具体版本.所以我还需要转换gizmo-6.1.3-SNAPSHOT到gizmo-6.1.3-mine.1.2.3并thing-3.1-mine-1.2.3依赖于它.
这只是实现我想要的一种方式的一个例子.目标是在未来一两年内,我可以检查我的版本1.2.3的发布分支,并能够运行mvn clean package等,而不必担心解决长期以来的SNAPSHOT依赖关系.
重要的是,这个分支是可编译的,而不仅仅是使用jar-and-dependencies程序集插件的功能来保留所有依赖项.我希望能够修改源文件并进行另一个版本构建(例如,应用修补程序).
所以,
branch目标上有一些配置选项的承诺,但它没有解决我想要的程度的外部deps.