如何使用Bintray用户仓库(正确)从gradle中获取依赖项?

时间:2014-09-08 00:22:21

标签: gradle dependency-management bintray

这更像是我做得对的'题。

快速回顾:我已经构建了一个gradle插件(在一个独立的gradle / groovy项目中)。我在一个不同的java项目中使用它。客户端项目通过以下方式引用它:

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

      classpath name: 'gradle-my-plugin'
}

所以我不想要对插件项目的相对引用(也不要让插件成为客户端的一部分)。我想我是否可以把它放在一个BinTray中并且像一个真实的'插入。

所以设置BinTray并经过多次试验和错误,我得到了它的工作,但我不认为我做对了。这是我做的:

  1. 制作了一个maven repo:MyStuff
  2. 制作一个包:gradle-my-plugin
  3. 制作版本:0.1
  4. 上传了该版本的文件,但指定了目标路径,例如" org / fhw / gradle-my-plugin / 0.1"
  5. 我的buildScript块如下所示:

    buildScript {
        repositories {
            maven {
                url 'http://dl.bintray.com/my-bintray-id/MyStuff
            }
        }    
        dependencies {
            classpath 'org.fhw:gradle-my-plugin:0.1'
       }
    }
    

    所以我很好奇的是我在BinTray上对目标所做的黑客攻击。 W / O这个,上传的文件/罐子(对于版本)没有适当的路径。

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

1 个答案:

答案 0 :(得分:5)

你做的是好的,虽然使用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

P.S。关于nexus隐藏的群组ID' - Bintray不仅限于Maven工件布局,您可以在任何需要的布局中部署文件,这就是您在通过UI上传文件时需要提供路径的原因。说,当Bintray在上传的文件中遇到pom文件时,它会自动设置路径。 将mavenmaven-publish与Bintray插件一起使用时,该路径也是可选的 - 一旦它清除了Maven文件,它就会计算工件的路径。