2015-01-05 101 views
15

可以运行gradlew dependencies来了解模块任务的依赖关系。有没有办法找到buildscript依赖项的传递依赖关系?对于buildScript依赖关系是否有Gradle“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 { .... } 
} 

回答

-1

得到buildscript相关性的信息,您可以使用此命令:

gradle dependencyInsight --dependency gradle 

有Udacity的精彩教程,Gradle for Android,但您可以观看this video以获取更多解释。

+0

“因为未指定输入配置而无法生成依赖项洞察报告”,尝试添加'--configuration classpath',但它仍然给我提供了同样的错误。也试过编译和运行时无济于事。有任何想法吗? (Gradle 3.5) – TWiStErRob

+1

这个答案不正确。首先,如上面的评论所述,“dependencyInsight”任务需要通过“--configuration”选项提供配置名称。其次,只有项目配置,而不是buildscript配置,才会暴露于此任务。 –

1

我认为你正在寻找Gradle's DependencyInsightReportTask

+0

你能举一个例子如何使用它来获取buildscript依赖关系的报告吗? – atok

+0

只需添加任务: 任务allDepInsight(类型:DependencyInsightReportTask)<< {} 然后运行gradle allDepInsight – Mark

+0

它导致以下错误:执行任务':SdkTestApp:allDepInsight'失败。 >由于未指定输入配置,因此无法生成依赖项洞察报告。 它可以从命令行指定,例如:':SdkTestApp:allDepInsight --configuration someConf --dependency someDep' – atok

27

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

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

更新:

与摇篮2.10开始,你现在可以通过

gradle buildEnvironment 
+0

不幸的是,'gradle buildEnvironment'似乎不会为核心插件输出任何内容。例如,对于'apply plugin:'application''来显示依赖关系,虽然'application'插件依赖于'java'插件。 – sschuberth

+0

@sschuberth如果你只是想知道什么插件被一个构建使用,我建议调查[构建扫描](https://scans.gradle.com/s/pqarplj4ogagg/plugins)。例如https://scans.gradle.com/s/pqarplj4ogagg/plugins。 –

+0

由于构建扫描是一种基于公共云的服务,只有在我公开了有关我的源代码/构建系统的详细信息时才能正常工作,有时候我并不知道。我知道Gradle Enterprise的本地版本,但我真的更喜欢“离线”工作,并在本地磁盘上创建报告。 – sschuberth

相关问题