gpt4 book ai didi

java - 是否可以覆盖 IntelliJ IDEA 在将构建委托(delegate)给 gradle 时选择运行的 gradle 任务?

转载 作者:行者123 更新时间:2023-12-02 06:20:46 25 4
gpt4 key购买 nike

我使用的是 IntelliJ IDEA 2019.1.1。现在默认情况下将构建委托(delegate)给 gradle。在大多数情况下,我喜欢这个想法,但对于我的一个项目来说,这个 gradle 委托(delegate)似乎导致了构建问题。我在构建输出中看到了这一点:

10:09:23 AM: Executing tasks ':scanrunner:testClasses :policyconsole:testClasses :scanrunner:classes :policyconsole:classes :stepsapi:querydslClasses :service-core:classes :service-core:testClasses :stepsapi:classes :stepsapi:testClasses'...

看起来 IntelliJ 正在选择这些任务从我的 build.gradle 自动运行。问题是像这样运行任务 ':stepsapi:querydslClasses' 总是会导致编译错误。在 --debug 模式下运行该任务后,我发现类路径是错误的,所有文件都无法编译。如果像这样省略该任务,构建将正常工作:

./gradlew :scanrunner:testClasses :policyconsole:testClasses :scanrunner:classes :policyconsole:classes :service-core:classes :service-core:testClasses :stepsapi:classes :stepsapi:testClasses

以这种方式运行时,gradle 会运行 :stepsapi:classes,而 :stepsapi:classes 又会运行来自 querydsl gradle 插件的 :stepsapi:compileQuerydsl。我假设 querydsl 插件中有一些东西可以正确设置类路径。

所以我的问题是,是否有一些 IntelliJ IDEA 设置或 build.gradle 设置可以覆盖当构建操作委托(delegate)给 gradle 时将执行哪些 gradle 任务?

更新:这是 github project这说明了这个问题。

最佳答案

在搞乱了一段时间之后,我将在 build.gradle 中添加以下内容:

project.afterEvaluate {
project.tasks.compileQuerydslJava {
onlyIf {false}
}
}

这有效地阻止了 gradle 对 IntelliJ IDEA 坚持运行的 :querydslClasses 任务执行任何操作。

FWIW,querydsl gradle 插件从 gradle Java 插件扩展了 JavaCompile。通过这样做,它可以免费获得诸如 :querydslClasses 和 :compileQuerydslJava 之类的任务。唯一的问题是该插件并不费心让这些“免费”任务开箱即用。它确实如此,但是做了一些技巧,以便只要您只指定诸如 :build 之类的任务,插件就可以工作。

关于java - 是否可以覆盖 IntelliJ IDEA 在将构建委托(delegate)给 gradle 时选择运行的 gradle 任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55835115/

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