我在很多项目中使用第三方Gradle插件,并希望将此插件永久添加到我的gradle安装中.目前我需要将插件添加到每个build.gradle中,如下所示:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "com.github.dcendents:android-maven-plugin:1.2"
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法将此插件添加到我的Gradle安装中,以便我不需要将它包含在每个构建文件中?
我确实认识到它可能不是最佳实践,并且可能导致无法重复的构建.
这是一个 hack,而不是一个解决方案
现在这是一个更新版本,它还可以应用插件并添加 Maven 存储库。使用 gradle 2.10 进行测试。
将此插件添加到您的 .gradle/init.gradle 中:
apply plugin:AddDepPlugin
class AddDepPlugin implements Plugin<Gradle> {
def addDeps = [
"org.ensime.gradle": "gradle.plugin.net.coacoas.gradle:ensime-gradle:0.2.2",
"com.github.dcendents.android-maven": "com.github.dcendents:android-maven-plugin:1.2"]
def addRepos = ["https://plugins.gradle.org/m2/"]
void apply(Gradle gradle) {
def add = 0
gradle.allprojects { project ->
plugins.whenPluginAdded { t ->
if (++add == 1) {
project.getBuildScriptSource()
def bs = project.getBuildscript()
bs.getDependencies()
def repo = bs.getRepositories()
def ccf = bs.class.getDeclaredField("classpathConfiguration")
ccf.setAccessible(true)
def cc = ccf.get(bs)
addDeps.each { k,v-> cc.dependencies.add(project.dependencies.create(v))}
addRepos.each { k-> repo.maven { -> setUrl(k) } }
}
if (add == 8)
addDeps.each { k,v ->
if (!k.startsWith("x")) project.apply([plugin: k])
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
785 次 |
| 最近记录: |