maven - Maven 和 JFROG 神器
问题描述
我正在使用“mvn install”命令,它使用 groupId、artifactID 和版本号将工件推送到 libs-release-local 下的 JFROG。
我的问题是:工件版本是 1.2.1,它正在替换新工件并删除旧工件。我可以在 build_Number 下推送工件吗?
就像 Jfrog 目标仓库中的 Ex:libs-release-local/groupIdname/artifactIdname/buildNumber/version(artifact)?
输出应该是这样的:如果内部版本号是 1 并且版本是 1.2.1。
libs-release-local groupIdname artifactIdname 1 1.2.1 .jar
解决方案
正如您所暗示的那样,“发布”工件在二进制存储库中应该被认为是不可变的,并且永远不会被覆盖。您所描述的似乎完全适合快照工件模型,因此您应该避免在这里重新发明轮子。
此外,Maven 在存储库布局方面几乎没有灵活性,因此您不能像那样违反标准的 Maven 存储库布局。
您应该做的是实施快照版本控制。事实上,SNAPSHOT 版本控制模型已经包含构建号和表示部署时间的时间戳,作为工件部署路径的一部分,使得每个部署(即构建)都是唯一的。最终结果是每个构建都部署到唯一路径,并且您的工件在开发阶段不会被覆盖。当您准备好从开发阶段过渡到发布阶段(即最终的工件版本)时,您可以升级现有的快照版本(升级有时意味着将版本从快照更改为发布)或启动一个独特的发布构建代表最终产品,不应被覆盖。
推荐阅读
- r - 读取 EDF 标头
- gnuplot - 将调色板定义为 rgb 变量
- laravel - 我想找到数组中存在的值
- c - 用死锁活锁和饥饿来用餐哲学家
- reactjs - React 测试库如何断言子属性和 Redux 存储更新?
- javascript - Selenium Webdriver (Javascript) 中的明文
- sql - SQL - 如何查询大于使用第一天出现的值的值?
- react-native - 为什么 react native 在原生模块和 javascript 线程之间使用批量通信(桥)?
- kubernetes - Microk8s 入口或负载均衡器在本地单节点集群中不起作用
- r - 在基本 R 图表上绘制数据框