编写具有非传递依赖性的自定义gradle插件

时间:2014-09-22 23:34:54

标签: plugins gradle

我正在尝试实现一个gradle插件,而gradle插件依赖于另一个gradle插件。这是我的插件的build.gradle

的片段
buildscript {
  repositories {
    mavenCentral()
    mavenLocal()
  }
}

apply plugin: 'groovy'
apply plugin: 'idea'
apply plugin: 'maven'

dependencies {
    repositories {
        mavenCentral()
        mavenLocal()
    }

    compile gradleApi()
    compile localGroovy()
    compile 'com.example:otherplugin:[0.1,)'
}

uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: mavenLocal())
            pom.groupId = 'com.example'
            pom.version = '0.5'
            pom.artifactId = 'myplugin'
        }
    }
}

正如您所看到的,我使用的是范围相关性,而不是特别关注' otherplugin' 的任何版本。当用户在build.gradle中包含我的插件时:

buildscript {
    repositories {
        mavenCentral()
        mavenLocal()
    }
    dependencies {
        classpath 'com.example:otherplugin:1.0', 'com.example:myplugin:2.3'
    }
}

Gradle始终使用最新版本的' com.example:otherplugin' 来处理他的项目。理想情况下,我希望下载用户指定的版本,并由gradle使用。

我认为这是我的插件build.gradle的一个问题。如何修改我的插件的build.gradle,以避免这种传递依赖?

0 个答案:

没有答案