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 神器的主要内容,如果未能解决你的问题,请参考以下文章

什么是神器?

maven Local Repo 版本神器

Netbeans:项目主神器通过maven-shade-plugin处理

开局一张图,学一学项目管理神器Maven

开局一张图,学一学项目管理神器Maven

试试 IDEA 解决 Maven 依赖冲突的高能神器!