2

我想将我的 Maven 工件发布到标准的 Maven 存储库。为此,我选择的第一个示例是 bintray Jfrog。不幸的是,这并不顺利。我不得不添加两个技巧。

  1. 如果再次推送相同版本,则删除现有工件
  2. maven发布后删除一些损坏的版本

整个代码可以在https://github.com/pPanda-beta/cassandra-java-driver-reactive-mapper/blob/4b1395db443facb188ed4aee120c6db7864908b7/cassandra-java-driver-reactive-mapper-reactor-core/build.gradle找到#L93-L122

上传的工件位于https://bintray.com/ppanda-beta/maven/cassandra-java-driver-reactive-mapper-reactor-core

为什么是 Maven 发布?

这里的主要目标是将 maven 工件保持为标准规范,而不是特定于任何提供者。我想将 repo 表示为{ url, username, password }. 发布方式不应根据 repo 提供者而改变。

请不要推荐除“maven-publish”之外的任何其他插件,我不想使用com.jfrog.bintraycom.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 客户端。

4

0 回答 0