这更像是一个“我做得对吗”的问题。
快速背景故事:我已经构建了一个 gradle 插件(在一个独立的 gradle/groovy 项目中)。我在另一个 java 项目中使用它。客户项目通过以下方式引用它:
buildScript
{
flatDir {
dirs '../my-gradle-plugin/build/libs'
}
classpath name: 'gradle-my-plugin'
}
所以我不想要插件项目的相对引用(也不让插件成为客户端的一部分)。我想我会看看我是否可以将它放在 BinTray 中并像“真正的”插件一样引用。
所以设置 BinTray 并经过多次反复试验,我让它工作了,但我认为我没有做对。这是我所做的:
我的 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/