gpt4 book ai didi

ant - 为什么Gradle总是总是先调用一个Ant任务?

转载 作者:行者123 更新时间:2023-12-03 05:01:59 25 4
gpt4 key购买 nike

我从其ant任务(尚未提供Gradle支持)中使用OWASP Dependency Check,如下所示:

task checkDependencies() {
ant.taskdef(name: 'checkDependencies',
classname: 'org.owasp.dependencycheck.taskdefs.DependencyCheckTask',
classpath: 'scripts/dependency-check-ant-1.2.5.jar')
ant.checkDependencies(applicationname: "MyProject",
reportoutputdirectory: "generated",
dataDirectory: "generated/dependency-check-cache") {
fileset(dir: 'WebContent/WEB-INF/lib') {
include(name: '**.jar')
}
}
}

这太好了。即使没有任何东西将此ant任务定义为依赖项(无论在ant中还是在Gradle中),它始终都首先执行,即使是简单的 gradlew tasks。为什么会这样,我该如何避免呢? (依赖检查非常慢。)

最佳答案

这是与Gradle非常常见的混淆。在上面的示例中,您正在项目配置期间执行Ant任务。您真正想要的是使其在任务执行期间运行。要解决此问题,应通过使用doLast {...}配置块或使用左移(<<)运算符将执行逻辑放置在任务 Action 中。

task checkDependencies << {
// put your execution logic here
}

有关Gradle构建生命周期的更多信息,请参见 Gradle docs

关于ant - 为什么Gradle总是总是先调用一个Ant任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26896163/

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