如何使用旧的maven插件在gradle中在本地和远程repo之间切换?

时间:2016-07-13 22:38:23

标签: maven gradle

我没有使用新的maven-publish插件,它看起来很棒,并且可以完美地用于这个用例,因为我一直在阅读没有人可以让罐子的签名工作(虽然我愿意接受解释那个以及我还没有找到一个关于它的博客说它在这一点上会起作用。)

Soooo,我希望能够轻松地在本地发布以进行测试和远程切换。我当前的build.gradle文件是

https://github.com/deanhiller/webpieces/blob/master/build.gradle

有一个注释掉的本地回购,我一直在翻阅和关闭评论,我宁愿避免这样做。即。这些回购...

       //repository(url: "file://localhost/tmp/myRepo/")
        repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
          authentication(userName: sonatypeUsername, password: sonatypePassword)
        }

我读了一篇关于在这里做某事的帖子,但是因为隐秘的关闭错误而失败了......

Configuring multiple upload repositories in Gradle build

我把它放在我的子项目部分,但那根本不起作用。理想情况下,使用图表whenReady听起来最好,因为如果我正在执行发布目标,那么只使用远程仓库会很酷。我似乎无法让这些工作起作用。

感谢, 迪安

1 个答案:

答案 0 :(得分:0)

编辑:我错了,下面现在只有一半正在工作,就像我./gradlew jar,然后我得到这个错误......(所以有些目标有效,有些没有...... ouch)

Cannot cast object 'task ':uploadArchives'' with class 'org.gradle.api.DefaultTask_Decorated' to class 'org.gradle.api.tasks.Upload'

我确实找到了一个解决方法虽然看起来很奇怪,因为现在隐藏了运行任务列表中的目标,具体取决于是否设置了一个似乎有点奇怪的变量。我认为可能有更好的方法,所以所有任务仍然列出,但现在我的构建文件只是做一个

if(project.hasProperty('projVersion')) {
  //task I want to be able to run
} else {
  //other task I want to run when no projVersion
}

所以它有效......任务现在都是不可见的,直到我做./gradlew -PprojVersion = X来查看它们。