我想将我的 Maven 工件发布到标准的 Maven 存储库。为此,我选择的第一个示例是 bintray Jfrog。不幸的是,这并不顺利。我不得不添加两个技巧。
- 如果再次推送相同版本,则删除现有工件
- maven发布后删除一些损坏的版本
上传的工件位于https://bintray.com/ppanda-beta/maven/cassandra-java-driver-reactive-mapper-reactor-core
为什么是 Maven 发布?
这里的主要目标是将 maven 工件保持为标准规范,而不是特定于任何提供者。我想将 repo 表示为{ url, username, password }
. 发布方式不应根据 repo 提供者而改变。
请不要推荐除“maven-publish”之外的任何其他插件,我不想使用com.jfrog.bintray
或com.jfrog.artifactory
对 BINTRAY JFROG 非常特定的插件。
当前解决方案有什么问题?
它很老套。它并不比 jfrog gradle 插件好。该解决方案已经在使用对其他 maven 存储库无效的自定义 hack。
为什么不完全切换到 Jfrog 呢?
这些工件的未来是驻留在更流行和标准的 maven 存储库中,例如:maven central、github maven repo 等。所以无论如何我会在不久的将来离开jFrog。在那之前,我想标准化 gradle 脚本以与任何 maven repo 一起使用。这与 docker 容器注册表非常相似。无论是全球 docker hub 还是 redhat cr 还是 google cr,我们都使用相同的 docker 客户端。