Gradle无法从mavenLocal解析插件的动态版本,如何获取最新版本?

时间:2018-01-05 18:06:41

标签: gradle

我创建了一个Gradle插件,可以创建一些额外的任务,并将插件发布到版本为0.2.1的MavenLocal。我可以在~/.m2中看到创建的jar。

在另一个Gradle项目中,我试图在buildscript的{​​{1}}部分内插入该插件,如下所示:

build.gradle

运行buildscript { repositories { mavenLocal() } dependencies { classpath 'com.example:myplugin:0.2.+' } } (或任何其他任务)会导致Gradle失败并显示以下消息:

gradle tasks

但是,如果我将版本从> Plugin with id 'com.example.myplugin' not found. 更改为0.2.+,那么它可以正常运行。如何将最新版本的插件添加到我的项目中?

1 个答案:

答案 0 :(得分:0)

我只是把我所做的事情放在这里,并希望它对你有帮助。

例如,我在本地安装gradle-tomcat-plugin(2.4.1和2.4.2)。

$ git checkout v2.4.2
$ ./gradlew publishToMavenLocal
$ git checkout v2.4.1
$ ./gradlew publishToMavenLocal
$ ls /Users/ruichen/.m2/repository/com/bmuschko/gradle-tomcat-plugin
2.4.1                    maven-metadata-local.xml
2.4.2

我向showClasspath添加了一个单独的任务(build.gradle),以告诉我应用的版本是什么:

task showClasspath {
    doLast {
        buildscript.configurations.classpath.each { println it.name }
    }
}

buildscript块也非常像你的:

buildscript {
    repositories {
        mavenLocal()
    }
    dependencies {
        classpath "com.bmuschko:gradle-tomcat-plugin:2.4.+"
    }
}

预期输出:

$ ./gradlew showClasspath

> Task :showClasspath
gradle-tomcat-plugin-2.4.2.jar