在init.gradle脚本中应用插件配置

时间:2019-06-11 07:09:46

标签: gradle init gradle-plugin

我想在本地为我的所有项目安装一些软件包,例如依赖性分析。但是我需要实际配置插件-也在init脚本中。

initscript {
    repositories {
      jcenter()
    }
    dependencies {
      classpath "ca.cutterslade.gradle:gradle-dependency-analyze:1.3.0"
    }
}
allprojects {
  apply plugin: ca.cutterslade.gradle.analyze.AnalyzeDependenciesPlugin
}

此初始化脚本可以正常工作并应用插件,但是不幸的是,默认设置是插件使构建失败。我只想记录一个警告。

为此,我需要添加配置:

analyzeClassesDependencies {
  justWarn = true
}

analyzeTestClassesDependencies {
  justWarn = true
}

但是当我尝试将其添加到init.gradle文件中时:

initscript {
    repositories {
      jcenter()
    }
    dependencies {
      classpath "ca.cutterslade.gradle:gradle-dependency-analyze:1.3.0"
    }
}
allprojects {
  apply plugin: ca.cutterslade.gradle.analyze.AnalyzeDependenciesPlugin
  analyzeClassesDependencies {
    justWarn = true
  }

  analyzeTestClassesDependencies {
    justWarn = true
  }
}

我得到一个错误:

FAILURE: Build failed with an exception.

* Where:
Initialization script '/Users/<my-user>/.gradle/init.gradle' line: 13

* What went wrong:
Could not find method analyzeClassesDependencies() for arguments [init_2y9p9if69e8553k9fsvzz4a28$_run_closure1$_closure2@3e17c37a] on root project 'my-project' of type org.gradle.api.Project.

有人知道如何应用插件配置吗? 我尝试了gradle forum,但没有得到任何答案,所以我希望在这里获得更多帮助:)

1 个答案:

答案 0 :(得分:1)

AnalyzeDependenciesPlugin将根据将哪个插件应用于您的项目来添加不同的任务。例如,analyzeClassesDependenciesanalyzeTestClassesDependencies仅在应用java插件时声明(请参见https://github.com/wfhartford/gradle-dependency-analyze/blob/master/src/main/groovy/ca/cutterslade/gradle/analyze/AnalyzeDependenciesPlugin.groovy的实现方式)

因此,在java配置闭包中应用AnalyzeDependenciesPlugin之前,您只需要应用allprojects插件:

allprojects {
    apply plugin: "java" // <= apply Java plugin here
    apply plugin: ca.cutterslade.gradle.analyze.AnalyzeDependenciesPlugin
    analyzeClassesDependencies {
        justWarn = true
    }
    analyzeTestClassesDependencies {
        justWarn = true
    }
}