gpt4 book ai didi

gradle - 找不到Gradle buildscript依赖项

转载 作者:行者123 更新时间:2023-12-03 05:13:17 24 4
gpt4 key购买 nike

注意,可以通过解决特定问题来部分地回答该问题,但是也可以解决一般问题。

具体问题

我需要将命令行选项传递给Gradle代码。 Gradle没有任何明智的方法,因此我需要以某种方式从System属性中提取它们,然后解析它们。我正在尝试为此使用org.apache.common.cli包。但是我无法将其导入到构建代码中。

大致如下所示:

buildscript {
repositories { ... }
dependencies {
classpath group: "commons-cli", name: "commons-cli", version: "1.2"
}
}
...
org.apache.commons.cli.DefaultParser

我得到这个:
* What went wrong:
Could not compile build file 'somewhere/build.gradle'.
> startup failed:
build file 'somewhere/build.gradle': 35: unable to resolve class org.apache.commons.cli.DefaultParser
@ line 35, column 1.
import org.apache.commons.cli.DefaultParser

我不知道出了什么问题或如何调试。我也尝试过Groovy的 groovy.util.CliBuilder,但这会因更多错误而中断。

因此,为了解决我眼前的问题:我很高兴找到一种简单的方法来解析传递给Gradle构建的命令行参数。

通用问题

有什么方法可以调试Gradle代码?通过调试,我并不是要在其命令行选项后附加 --debug参数。它只是打印出大量无关的废话,但丝毫没有告诉您它试图做什么以及出了什么问题。我的意思是像一个实际的调试器。

有没有办法知道它试图加载哪些依赖项,并成功加载了它们,如果是,它是从哪里加载的?

有什么方法可以将“Gradle语言”翻译成可以由lint / s.t。进行分析的内容。一个人会知道它的哪个部分/是否有必要添加某种特定的其他部分(我的意思是某种智力上的理解,可以使理解未满足的依赖关系等问题变得更加容易)?

最佳答案

这篇文章提出了几个问题,而且主观性很高(例如:“没有任何明智的方式”)。我会尽力的

首先,作为对buildscript的完整性检查,让我们尝试Apache Commons Lang3:

import org.apache.commons.lang3.StringUtils

buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath group: 'org.apache.commons', name: 'commons-lang3', version: '3.4'
}
}

println "TRACER : " + StringUtils.class.simpleName

上面的脚本有效,但是在Gradle 2.14.1中,我可以确认来自Apache Commons CLI 1.3.1的 DefaultParser(顺便说一句,它不在 v 1.2中)不起作用。我怀疑这与 this bug有关。该链接提到 dom4j,但可能是 cli在同一类别中。

关于命令行参数,Gradle文档包含使用 -P-Dgradle.properties等的示例。如果您有特定的解析问题,请创建一个包含具体问题的新问题。

关于依赖关系,可以使用以下命令:
gradle dependencies
gradle buildEnvironment

后者请参见 this post

关于gradle - 找不到Gradle buildscript依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39438597/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com