我正在尝试获取dependencyInsight或dependencies gradle任务的--configuration标志的所有有效值的列表。我如何使用Gradle 3.2.1来实现这一点?
--configuration
lyfkaqu11#
您是否尝试过:
configurations.each { println it.name }
?
von4xj4u2#
尝试
gradle --console plain dependencies | fgrep ' - '
dependencies任务列出了所有配置(沿着它们的依赖项),fgrep只会显示配置名称(以及每个配置的简短描述)。这不是很好,但不需要您在构建脚本中输入内容。
bxgwgixi3#
在Gradle 5中,使用--info选项非常简单。例如:
--info
./gradlew projects --info
现在查看Configure project部分,其中列出了所有配置。
Configure project
jvidinwx4#
将此添加到根项目:
allprojects { repositories { // .... } task printConfigurations { doLast {task -> println "Project Name: $project.name configurations:" configurations.each { println " $it.name" } } } }
然后,举例来说:
$ ./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
1cosmwyk5#
以下是与其他答案等效的Kotlin DSL(build.gradle.kts):
configurations.forEach { println(it) }
将上述语句放在build.gradle.kts文件的顶部。每当您运行任何任务(如 build)时,它都将打印如下内容:
configuration ':app:androidApis' configuration ':app:androidJdkImage' configuration ':app:androidTestAnnotationProcessor' ...
您也可以为此创建一个专用任务:
tasks.register("myConfigs") { doLast { configurations.forEach { println(it) } } }
从命令行运行任务,如下所示:
./gradlew myConfigs
j2cgzkjk6#
以下是Java插件的所有配置:https://docs.gradle.org/current/userguide/java_plugin.html#sec:java_plugin_and_dependency_managementcompile(已弃用)编译时间依赖项。已被实现取代。实现扩展了编译仅实现依赖项compileOnly仅在编译时使用依赖项,在运行时不使用。compileClasspath扩展了compile,compileOnly,编译类路径实现,在编译源代码时使用由compileJava任务使用注解处理器编译期间使用的注解处理器。runtime(已弃用)扩展编译运行时依赖项。已被runtimeOnly取代。runtimeOnly仅运行时依赖项。runtimeClasspath扩展runtimeOnly,运行时,实现运行时类路径包含实现得元素以及仅运行时元素.testCompile(已弃用)扩展了编译测试的其他依赖项。已被testImplementation取代。testImplementation扩展testCompile,实现测试的仅实现依赖项。testCompileOnly仅用于编译测试的附加依赖项,在运行时不使用。testCompileClasspath扩展了testCompile,testCompileOnly,testImplementation测试编译类路径,在编译测试源时使用。由任务compileTestJava使用。testRuntime(已弃用)扩展运行时,testCompile仅用于运行测试的其他依赖项。已被testRuntimeOnly取代。testRuntimeOnly扩展runtimeOnly运行测试的仅运行时依赖项。testRuntimeClasspath扩展了testRuntimeOnly,testRuntime,testImplementation Runtime类路径以运行测试。由任务测试使用。存档此项目生成的工件(例如jar)。由任务uploadArchives使用。default extends runtimeClasspath此项目上的项目依赖项所使用的默认配置。包含此项目在运行时所需的工件和依赖项。
0tdrvxhp7#
如果有人希望在命令行上执行此操作:
gradle outgoingVariants
您将不得不进行一些解析,但您将看到类似于以下内容的内容:
-------------------------------------------------- Variant yummyDebugRuntimeElements -------------------------------------------------- Description = Runtime elements for debug Capabilities - group:artifact:0.1 (default capability) Attributes - com.android.build.api.attributes.BuildTypeAttr = debug - com.android.build.api.attributes.ProductFlavor:default. = yummy - com.android.build.api.attributes.VariantAttr = debug - com.android.build.gradle.internal.dependency.AndroidTypeAttr = Aar - org.gradle.usage = java-runtime - org.jetbrains.kotlin.platform.type = androidJvm ...
qzwqbdag8#
@Mike Hanafey的answer的变体,使用GradleKotlinDSL,并添加另一个仅打印可解析配置的任务(用于传递到dependencyInsight的--configuration参数)。
dependencyInsight
allprojects { fun printConfigurations(filter: (Configuration) -> Boolean = { true }) { configurations.filter(filter).forEach { println("\t${it.name}") } } task("printConfigurations") { doLast { println("${project.name} configurations:") printConfigurations() } } task("printResolvableConfigurations") { doLast { println("${project.name} resolvable configurations:") printConfigurations { it.isCanBeResolved } } } }
c8ib6hqw9#
只需运行这些不带--configuration标志的命令,输出的第一行将是可用配置的列表
9条答案
按热度按时间lyfkaqu11#
您是否尝试过:
?
von4xj4u2#
尝试
dependencies任务列出了所有配置(沿着它们的依赖项),fgrep只会显示配置名称(以及每个配置的简短描述)。这不是很好,但不需要您在构建脚本中输入内容。
bxgwgixi3#
在Gradle 5中,使用
--info
选项非常简单。例如:现在查看
Configure project
部分,其中列出了所有配置。jvidinwx4#
将此添加到根项目:
然后,举例来说:
1cosmwyk5#
以下是与其他答案等效的Kotlin DSL(build.gradle.kts):
将上述语句放在build.gradle.kts文件的顶部。每当您运行任何任务(如 build)时,它都将打印如下内容:
您也可以为此创建一个专用任务:
从命令行运行任务,如下所示:
j2cgzkjk6#
以下是Java插件的所有配置:
https://docs.gradle.org/current/userguide/java_plugin.html#sec:java_plugin_and_dependency_management
compile(已弃用)编译时间依赖项。已被实现取代。
实现扩展了编译仅实现依赖项
compileOnly仅在编译时使用依赖项,在运行时不使用。
compileClasspath扩展了compile,compileOnly,编译类路径实现,在编译源代码时使用由compileJava任务使用
注解处理器编译期间使用的注解处理器。
runtime(已弃用)扩展编译运行时依赖项。已被runtimeOnly取代。
runtimeOnly仅运行时依赖项。
runtimeClasspath扩展runtimeOnly,运行时,实现运行时类路径包含实现得元素以及仅运行时元素.
testCompile(已弃用)扩展了编译测试的其他依赖项。已被testImplementation取代。
testImplementation扩展testCompile,实现测试的仅实现依赖项。
testCompileOnly仅用于编译测试的附加依赖项,在运行时不使用。
testCompileClasspath扩展了testCompile,testCompileOnly,testImplementation测试编译类路径,在编译测试源时使用。由任务compileTestJava使用。
testRuntime(已弃用)扩展运行时,testCompile仅用于运行测试的其他依赖项。已被testRuntimeOnly取代。
testRuntimeOnly扩展runtimeOnly运行测试的仅运行时依赖项。
testRuntimeClasspath扩展了testRuntimeOnly,testRuntime,testImplementation Runtime类路径以运行测试。由任务测试使用。
存档此项目生成的工件(例如jar)。由任务uploadArchives使用。
default extends runtimeClasspath此项目上的项目依赖项所使用的默认配置。包含此项目在运行时所需的工件和依赖项。
0tdrvxhp7#
如果有人希望在命令行上执行此操作:
您将不得不进行一些解析,但您将看到类似于以下内容的内容:
qzwqbdag8#
@Mike Hanafey的answer的变体,使用GradleKotlinDSL,并添加另一个仅打印可解析配置的任务(用于传递到
dependencyInsight
的--configuration
参数)。c8ib6hqw9#
只需运行这些不带
--configuration
标志的命令,输出的第一行将是可用配置的列表