Maven 和 JFROG 神器
Posted
技术标签:
【中文标题】Maven 和 JFROG 神器【英文标题】:Maven and JFROG artifactory 【发布时间】:2018-05-31 14:27:49 【问题描述】:我正在使用“mvn install”命令,它使用 groupId、artifactID 和版本号将工件推送到 libs-release-local 下的 JFROG。
我的问题是:工件版本是 1.2.1,它正在替换新工件并删除旧工件。我可以在 build_Number 下推送工件吗?
类似于 Jfrog 目标 repo 中的 Ex:libs-release-local/groupIdname/artifactIdname/buildNumber/version(artifact)?
输出应该是这样的:如果内部版本号是 1 并且版本是 1.2.1。
libs-release-local 组名 工件名称 1 1.2.1 .jar
【问题讨论】:
【参考方案1】:正如您所暗示的,“发布”工件在二进制存储库中应该被认为是不可变的,并且永远不会被覆盖。您所描述的似乎恰好适合 snapshot artifact model,因此您应该避免在这里重新发明***。
此外,Maven 在存储库布局方面几乎没有灵活性,因此您不能像这样违反标准的 Maven 存储库布局。
您应该做的是实施快照版本控制。事实上,SNAPSHOT 版本控制模型已经包含构建号和表示部署时间的时间戳,作为工件部署路径的一部分,使得每个部署(即构建)都是唯一的。最终结果是每个构建都部署到一个唯一的路径,并且您的工件在开发阶段不会被覆盖。当您准备好从开发阶段过渡到发布阶段(即最终的工件版本)时,您可以升级现有的快照版本(升级有时可能意味着将版本从快照更改为发布)或启动一个独特的发布版本代表最终产品,不应被覆盖。
【讨论】:
以上是关于Maven 和 JFROG 神器的主要内容,如果未能解决你的问题,请参考以下文章