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

IDEA在build.gradle.kts中报告ShadowJar任务的错误,而./gradlew run工作正常

章昊
2023-03-14

我使用Kotlin DSL进行gradle配置。

./渐变工作正常,但 IDEA 仍然在 build.gradle.kts 中报告暗影Jar 的错误

Type argument is not within its bounds.
Expected:Task!
Found:   ShadowJar

问:对于 ShadowJar 任务,是否有任何替代语法可以同时适用于分级和 IDEA?

用于重现问题的 git 存储库:https://github.com/ludenus/gradle-kts-shadow-jar

build.gradle.kts(建筑等级.kts):

import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
import org.gradle.api.tasks.testing.logging.TestLogEvent

plugins {

    kotlin("jvm") version "1.3.20"
    id("com.github.johnrengelman.shadow") version "4.0.4"

    application
}


group = "com.example"
version = "0.0.1"

repositories {
    jcenter()
    mavenCentral()
}

val junitVersion = "5.4.0"

dependencies {
    implementation(kotlin("stdlib", "1.3.20"))
    implementation("org.jetbrains.kotlin:kotlin-reflect:1.3.20")

    compileClasspath("com.github.jengelman.gradle.plugins:shadow:4.0.4")

    implementation("org.slf4j:slf4j-api:1.7.21")
    implementation("ch.qos.logback:logback-core:1.2.3")
    implementation("ch.qos.logback:logback-classic:1.2.3")

    testImplementation("io.kotlintest:kotlintest-runner-junit5:3.3.1")
    testImplementation("org.junit.jupiter:junit-jupiter-api:$junitVersion")
    testImplementation("org.junit.jupiter:junit-jupiter-params:$junitVersion")
    runtime("org.junit.jupiter:junit-jupiter-engine:$junitVersion")

}

application {
    mainClassName = "com.example.App"
}


val test by tasks.getting(Test::class) {
    useJUnitPlatform()
    testLogging.showStandardStreams = true
    testLogging.events = setOf(TestLogEvent.PASSED, TestLogEvent.FAILED, TestLogEvent.SKIPPED, TestLogEvent.STANDARD_OUT, TestLogEvent.STANDARD_ERROR)
}

tasks.withType<ShadowJar> {
    manifest {
        attributes["Implementation-Title"] = "Shadow Jar"
        attributes["Implementation-Version"] = version
        attributes["Main-Class"] = "com.example.App"
    }
    classifier = "jar-with-dependencies"
}

版本:

分级:

$ ./gradlew --version

------------------------------------------------------------
Gradle 5.2.1
------------------------------------------------------------

Build time:   2019-02-08 19:00:10 UTC
Revision:     f02764e074c32ee8851a4e1877dd1fea8ffb7183

Kotlin DSL:   1.1.3
Kotlin:       1.3.20
Groovy:       2.5.4
Ant:          Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM:          1.8.0_201 (Oracle Corporation 25.201-b09)
OS:           Linux 4.15.0-46-generic amd64

想法:

IntelliJ IDEA 2019.1 (Community Edition)
Build #IC-191.6183.87, built on March 27, 2019
JRE: 1.8.0_202-release-1483-b39 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.15.0-46-generic

IDEA配置为使用gradle“包装器”任务配置。

操作系统

$ uname -a
Linux qa-pc 4.15.0-46-generic #49-Ubuntu SMP Wed Feb 6 09:33:07 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.2 LTS"

共有1个答案

施玉宸
2023-03-14

< code>compileClasspath很可能是混淆概念-梯度集成

 类似资料:
  • 理解Gradle profile报告时遇到了困难,这些报告的执行任务结果是“没有工作”。 Gradle文档只是声明,结果将反映为没有跳过但没有工作的任务。这是否意味着构建任务不起作用,只是调用和/或依赖Java插件中的其他子任务?

  • 为什么这个节目不播放音乐?我正在尝试用JavaFX制作一个应用程序,允许用户播放任何他想播放的MP3文件。但它根本不起作用!为什么? 它绝对不会出错! 我做了一些研究并替换了一些代码。现在唯一发生的事情是没有音乐播放和应用程序停止运行。 我做错了什么?

  • 错误日志对于发现程序中的错误是非常有帮助的,但是有些时候它也会将应用程序的结构暴露给外部。为了有效的保护你的应用程序不受到由此而引发的问题。你需要将在你的服务器上使用开发和生产(线上)两套不同的配置。 开发环境 为了在开发环境中显示所有可能的错误,将你的 php.ini 进行如下配置: display_errors = On display_startup_errors = On error_re

  • 有人能发布一个如何使用web服务作为数据源定义子报表的工作示例吗? 我正在阅读以下内容: http://community . jasper soft . com/project/we B- service-data-source 在“子报告和其他数据集”一节中,我需要考虑(2)的情况: 您有一个希望循环的主结果集,并且希望对每一行执行一个新的查询(webservice调用) 在子报表配置(或数据

  • 1.1.2. 错误报告 没有不会犯错的开发者,PHP的错误报告功能将协助您确认和定位这些错误。可以PHP提供的这些详细描述也可能被恶意攻击者看到,这就不妙了。使大众看不到报错信息,这一点很重要。做到这一点很容易,只要关闭display_errors,当然如果您希望得到出错信息,可以打开log_errors选项,并在error_log选项中设置出错日志文件的保存路径。 由于出错报告的级别设定可以导致

  • 当简单报表不适用于子报表时,此操作有效...