我正在尝试获取dependencyInsight或依赖项 gradle任务的--configuration标志的所有有效值的列表.我将如何使用Gradle 3.2.1进行此操作?
Opa*_*pal 33
你有没有尝试过:
configurations.each { println it.name }
Run Code Online (Sandbox Code Playgroud)
?
Iva*_*sov 15
gradle proj:resolvableConfigurations | grep "^Configuration"
Run Code Online (Sandbox Code Playgroud)
您可能runtimeClasspath想要:dependencyInsight.
实际上有一个内置任务resolvableConfigurations
(自Gradle 7.5起),因此不再需要在构建脚本中包含自定义配置打印逻辑。
它的输出相当冗长且笨拙,作为仅找出配置列表的方法——提取grep名称行。当然,您可以更进一步,删除“配置”一词以仅获取名称:
gradle proj:resolvableConfigurations | grep "^Configuration" | sed "s/Configuration //g"
Run Code Online (Sandbox Code Playgroud)
Nie*_*Wet 14
Gradle 5 的--info选项非常简单。例如:
./gradlew projects --info
Run Code Online (Sandbox Code Playgroud)
现在查看Configure project列出所有配置的部分。
Mik*_*fey 14
将其添加到根项目:
allprojects {
repositories {
// ....
}
task printConfigurations {
doLast {task ->
println "Project Name: $project.name configurations:"
configurations.each {
println " $it.name"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
那么,例如:
$ ./gradlew -q :SubProjA:printConfigurations
Project Name: SubProjA configurations:
-api
-runtime
annotationProcessor
api
apiDependenciesMetadata
apiElements
archives
compile
compileClasspath
compileOnly
compileOnlyDependenciesMetadata
default
implementation
implementationDependenciesMetadata
kotlinCompilerClasspath
kotlinCompilerPluginClasspath
kotlinKlibCommonizerClasspath
kotlinNativeCompilerPluginClasspath
kotlinScriptDef
kotlinScriptDefExtensions
runtime
runtimeClasspath
runtimeElements
runtimeOnly
runtimeOnlyDependenciesMetadata
sourceArtifacts
testAnnotationProcessor
testApi
testApiDependenciesMetadata
testCompile
testCompileClasspath
testCompileOnly
testCompileOnlyDependenciesMetadata
testImplementation
testImplementationDependenciesMetadata
testKotlinScriptDef
testKotlinScriptDefExtensions
testRuntime
testRuntimeClasspath
testRuntimeOnly
testRuntimeOnlyDependenciesMetadata
Run Code Online (Sandbox Code Playgroud)
Mar*_*ark 12
尝试
gradle --console plain dependencies | fgrep ' - '
Run Code Online (Sandbox Code Playgroud)
依赖项任务列出了所有配置(及其依赖项),fgrep将只显示配置名称(以及每个配置名称的简要说明).它不是很好,但不要求你把东西放在你的构建脚本中.
这是与其他答案等效的Kotlin DSL (build.gradle.kts ):
configurations.forEach(::println)
Run Code Online (Sandbox Code Playgroud)
将上述语句放在 build.gradle.kts 文件的顶部。每当您运行任何任务(例如build )时,它都会打印如下内容:
configuration ':app:androidApis'
configuration ':app:androidJdkImage'
configuration ':app:androidTestAnnotationProcessor'
...
Run Code Online (Sandbox Code Playgroud)
您还可以为此创建专门的任务:
tasks.register("myConfigs") {
doLast {
configurations.forEach { println(it) }
}
}
Run Code Online (Sandbox Code Playgroud)
从命令行运行任务,如下所示:
./gradlew myConfigs
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14807 次 |
| 最近记录: |