gradle - 如何使用 Bintray 用户存储库(正确地)作为 gradle 的依赖项?

标签 gradle dependency-management bintray

这更像是一个“我做得对吗”的问题。

快速背景故事:我已经构建了一个 gradle 插件(在一个独立的 gradle/groovy 项目中)。我在另一个 java 项目中使用它。客户项目通过以下方式引用它:

buildScript
{
      flatDir {
            dirs '../my-gradle-plugin/build/libs'
      }

      classpath name: 'gradle-my-plugin'
}

所以我不想要插件项目的相对引用(也不让插件成为客户端的一部分)。我想我会看看我是否可以将它放在 BinTray 中并像“真正的”插件一样引用。

所以设置 BinTray 并经过多次反复试验,我让它工作了,但我认为我没有做对。这是我所做的:
  • 做了一个 Maven 仓库:MyStuff
  • 做了一个包:gradle-my-plugin
  • 做了一个版本:0.1
  • 上传了该版本的文件,但指定了一个目标路径,如“org/fhw/gradle-my-plugin/0.1”

  • 我的 buildScript 块如下所示:
    buildScript {
        repositories {
            maven {
                url 'http://dl.bintray.com/my-bintray-id/MyStuff
            }
        }    
        dependencies {
            classpath 'org.fhw:gradle-my-plugin:0.1'
       }
    }
    

    所以我很好奇的是我对 BinTray 上的目标所做的 hack。没有这个,上传的文件/ jar (对于一个版本)没有正确的路径。

    那么对于 BinTray 和 Gradle 依赖项来说,这是一个正确的过程吗?

    最佳答案

    你所做的没问题,尽管使用 the official Bintray plugin可以让你的生活更轻松。
    它一天比一天好,添加功能并为您做越来越多的工作(例如,如果它们不存在,它可以懒惰地为您创建一个包和一个版本)。

    另一件要考虑的事情是将您的包裹放入 jcenter .这种包含的好处之一是 a free account in oss.jfrog.org for your development process .这是一个免费的 Artifactory 帐户 ( like nexus, but so much better )。

    另请注意,您可以包含您的插件 Gradle plugins portal .一旦你这样做了,你的插件的使用就归结为

    plugins {
      id "org.fhw.gradle-my-plugin" version "0.1"
    }
    

    Here are the inclusion instructions .

    附言关于 nexus '隐藏' 的组 id - Bintray 不限于 Maven 工件布局,您可以在您需要的任何布局中部署文件,这就是为什么您需要在通过 UI 上传文件时提供路径。也就是说,当Bintray在上传的文件中遇到pom文件时,它会自动设置路径。
    使用 maven 时路径也是可选的或 maven-publish使用 Bintray 插件 - 一旦明确这些是 Maven 文件,它就会从工件计算路径。

    关于gradle - 如何使用 Bintray 用户存储库(正确地)作为 gradle 的依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25715982/

    相关文章:

    maven-2 - Maven : Should I keep or remove declared dependencies that are also transitives dependencies?

    gradle - 将工件从Gradle项目发布到Bintray(Maven存储库)

    gradle - 无法使用 Gradle 部署到 Bintray

    gradle - Perl脚本可以在Gradle脚本中执行吗?

    java - Java 和 Gradle 的模块源结构是否不同?

    android - 在哪里可以下载Google的android程序包? (不是应用程序)

    android - 错误 : "failed to find Build Tools revision..." after Android Studio installation

    dependency-management - 法罗依赖 hell

    windows - 如何根据操作系统系列具有不同的依赖关系

    android - 如何将本地 aar 依赖项添加到 bintray 发布的库中?