当前位置: 首页 > 知识库问答 >
问题:

使用withType()配置未在IntelliJ中编译的Gradle任务

姜弘新
2023-03-14

我试图在一个用Java编写的自定义Gradle插件中配置测试任务。

build.gradle.kts中应用我需要的插件:

plugins {
    `java-gradle-plugin`
    `maven-publish`
}

我可以像./gradlew clean build那样通过命令行成功地编译代码

但是,IntelliJ在以下代码中抱怨test.class:

public static void configureTesting(final Project project) {
    project.getTasks().withType(Test.class).configureEach(task -> {
    });
}

道:

Required type: java.lang.Class <S>
Provided: java.lang.Class <Test>
reason: no instance(s) of type variable(s) exist so that T conforms to Task
import org.gradle.api.tasks.testing.Test;

分级版本:6.7.1

Intellij:2020.2.3

共有1个答案

沈栋
2023-03-14

我花了很多时间搜索这个。最后,我在某个地方发现了一条评论,说可以尝试使用IntelliJ附带的内部SDK(jbr),而不是手动下载的SDK。这让它起作用了。内部SDK是Java11,我还安装了Oracle最新版本的Java11。尽管它们都是Java11,但内部SDK(jbr)仍能正常工作,而外部SDK则不然。对于其他项目来说,外部SDK工作得很好,但是对于构建Gradle插件来说就不行了。

 类似资料:
  • 在我的 maven 项目中,我目前正在将我的 Java 代码与一些 Groovy 代码混合在一起。在这一点上,我主要使用Groovy来构建豆子。我的一些Java代码直接使用Groovy豆。 我这样配置Maven编译器插件:- 当我使用运行我的测试用例时,它工作得很好。 然而,当我通过右键单击测试文件直接从IntelliJ运行测试用例并运行它时,Groovy bean上会出现“找不到符号”错误。当我

  • 我有一个非常简单的构建。gradle文件包含以下内容: 我想要的是在java编译开始之前运行generateSources任务。我找到了几种解决方法,比如compileJava。dependsOn(“generateSources”),但不幸的是,它们给出了一个错误: 我不认识Gradle,也不明白这个代码出了什么问题。所以我想知道如何修复这个错误。

  • 我需要创建Gradle任务,它可以在Gradle构建之前替换.java文件。分级在.war文件中构建包应用程序。我需要在构建后替换字节码。我试过sourceSets Gradle任务,但它只能排除文件。 但我需要在同一地方也包括文件。我怎么能和Gradle在一起?

  • 我目前正在尝试将基于Ant的构建过程转移到Gradle。 任务“:CompileJava”执行失败。编译失败;有关详细信息,请参阅编译器错误输出。“ -stacktrace选项不提供其他信息。所以,Gradle编译显示我的代码中有一些错误。但是这个相同的代码(Ant jar任务的jar)目前被20个或更多的其他项目使用,一切都是可以的。 Gradle似乎是一个很棒的构建工具,所以我想理解为什么当我

  • 在IntelliJ2017中,我在中设置我的jdk路径。 这种设置在IntelliJ 2018中消失了。如何在IntelliJ2018中设置JDK的默认路径? 我知道我可能会在项目结构设置中设置它,但是,这个设置是特定于在Intellij中打开的实际项目的。我打算做的是为所有项目设置它。

  • 问题内容: IntelliJ IDEA 2016.3添加了将构建/运行委托给Gradle的功能。 很明显,当委托选项启用时,Gradle会执行所有操作。 我的问题是,关闭此选项时,IntelliJ到底在做什么? 我问这个问题是因为我的Gradle文件中有自定义代码,并且在IntelliJ中构建时似乎未执行此代码。当我运行时,一切正常。 问题答案: IntelliJ有自己的构建系统,称为JPS,它使