【问题标题】:Is there Gradle "dependencies " task for buildScript dependencies?buildScript 依赖项是否有 Gradle“依赖项”任务?
【发布时间】:2015-01-05 12:15:02
【问题描述】:

可以运行gradlew dependencies 来了解模块任务的依赖关系。有没有办法找到buildscript dependencies的传递依赖?

示例: classpath 'com.android.tools.build:gradle:1.0.0'直接依赖:

com.android.tools.build builder
com.android.tools.lint lint
net.sf.proguard proguard-gradle
tools.base project-test-lib

可以在MVNRepository 上看到。但是这个工件有它们自己的依赖关系。有没有办法在不手动遍历整个依赖树的情况下找到它们?

澄清一下,我所说的类路径定义为:

buildscript {
    repositories {}
    dependencies { .... }
}

【问题讨论】:

    标签: java gradle


    【解决方案1】:

    不幸的是,无法通过 CLI 为隐式 dependencies 任务指定构建脚本配置。您必须明确定义使用构建脚本配置配置的 DependencyReportTask 类型的任务。

    task buildscriptDependencies(type: DependencyReportTask) {
        configurations = [buildscript.configurations.classpath]
    }
    

    更新:

    从 Gradle 2.10 开始,您现在可以通过

    获取有关 buildscript 依赖项的信息
    gradle buildEnvironment
    

    【讨论】:

    • 不幸的是,gradle buildEnvironment 似乎没有为核心插件输出任何内容。例如,apply plugin: 'application' 显示了依赖关系,尽管application 插件依赖于java 插件。
    • @sschuberth 如果您只是想知道构建使用的所有插件我建议调查build scans。例如scans.gradle.com/s/pqarplj4ogagg/plugins.
    • 由于构建扫描是一项基于公共云的服务,只有在我可以公开披露有关我的源代码/构建系统的详细信息(有时我不是这样)的情况下,它才会起作用。我知道 Gradle Enterprise 的本地版本,但我真的更喜欢“离线”工作并在我的本地磁盘上创建报告的东西。
    【解决方案2】:

    【讨论】:

    • 你能举个例子如何使用它来获取buildscript依赖的报告吗?
    • 只需添加任务:task allDepInsight(type: DependencyInsightReportTask)
    • 它导致以下错误:任务':SdkTestApp:allDepInsight'的执行失败。 > 由于未指定输入配置,无法生成依赖关系洞察报告。可以从命令行指定,例如:':SdkTestApp:allDepInsight --configuration someConf --dependency someDep'
    • 嗯,看来你需要指定依赖: gradle allDepInsight --configuration testRuntime --dependency org.slf4j:slf4j-simple 我不知道怎么做所有的依赖是项目..
    • 我似乎找不到配置,尽管报告和文档说应该有一些(使用 Android Studio v1.5 附带的任何东西)
    【解决方案3】:

    你可以使用这个命令:

    gradle dependencyInsight --dependency gradle
    

    Udacity 提供了很棒的教程,Gradle for Android,但您可以观看this video 以获得更多解释。

    【讨论】:

    • “无法生成依赖洞察报告,因为未指定输入配置。”,尝试添加--configuration classpath,但它仍然给了我同样的错误。还尝试了compileruntime 无济于事。有任何想法吗? (3.5 年级)
    • 这个答案不正确。首先,正如上面的评论所提到的,dependencyInsight 任务需要通过--configuration 选项提供配置名称。其次,只有项目配置,而不是 buildscript 配置,才会暴露给这个任务。
    猜你喜欢
    • 2012-12-05
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-13
    • 1970-01-01
    • 2020-12-27
    相关资源
    最近更新 更多