Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin Gradle在WSL上构建什么都不做_Kotlin_Gradle_Windows Subsystem For Linux - Fatal编程技术网

Kotlin Gradle在WSL上构建什么都不做

Kotlin Gradle在WSL上构建什么都不做,kotlin,gradle,windows-subsystem-for-linux,Kotlin,Gradle,Windows Subsystem For Linux,我正在编写一个Kotlin程序,并使用Gradle作为构建系统,这是该语言的习惯。我通常在Windows上工作,但现在是在Linux上开始测试的时候了,所以使用WSL进行测试。安装了Gradle,在WSL中克隆了我的代码副本 (base) a@DESKTOP-4B7M920:~/ayane$ gradle -version WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflectiv

我正在编写一个Kotlin程序,并使用Gradle作为构建系统,这是该语言的习惯。我通常在Windows上工作,但现在是在Linux上开始测试的时候了,所以使用WSL进行测试。安装了Gradle,在WSL中克隆了我的代码副本

(base) a@DESKTOP-4B7M920:~/ayane$ gradle -version
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/usr/share/java/groovy-all.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

------------------------------------------------------------
Gradle 4.4.1
------------------------------------------------------------

Build time:   2012-12-21 00:00:00 UTC
Revision:     none

Groovy:       2.4.16
Ant:          Apache Ant(TM) version 1.10.5 compiled on March 28 2019
JVM:          11.0.7 (Ubuntu 11.0.7+10-post-Ubuntu-2ubuntu218.04)
到目前为止,这一警告有时会发生,但似乎并不预示着马上就会有麻烦

这是我的生成文件,适用于Windows:

(base) a@DESKTOP-4B7M920:~/ayane$ cat build.gradle.kts
plugins {
    kotlin("jvm") version "1.3.72"
}

repositories {
    jcenter()
}

dependencies {
    implementation(kotlin("stdlib"))
    testImplementation("org.junit.jupiter:junit-jupiter:5.6.2")
}

tasks.test {
    useJUnitPlatform()
    testLogging {
        events("passed", "skipped", "failed")
    }
}
来吧

(base) a@DESKTOP-4B7M920:~/ayane$ gradle build

> Task :buildEnvironment

------------------------------------------------------------
Root project
------------------------------------------------------------

classpath
No dependencies


BUILD SUCCESSFUL in 0s
1 actionable task: 1 executed
<-------------> 0% WAITING
(基本)a@DESKTOP-4B7M920:~/ayane$gradle构建
>任务:构建环境
------------------------------------------------------------
根项目
------------------------------------------------------------
类路径
无依赖项
在0秒内成功构建
1个可执行任务:1个已执行
0%等待

嗯??我可以理解它是否因为某些先决条件不可用而抛出错误。但是没有错误,什么都没有?发生了什么事?

此时您正在使用最新版本的Gradle Kotlin插件(1.3.72)。但是,您使用的是一个非常旧的Gradle版本(4.4.1)。正如您可以从中看到的:

Kotlin Gradle插件1.3.72适用于Gradle 4.9及更高版本

不幸的是,插件没有检查这一点,并给出更正确的错误消息,而不是默默地什么都不做。我想如果你愿意的话,你可以为Jetbrains制造一个问题

正如在对您的问题的评论中提到的,我也强烈建议使用。它确保项目是使用您(构建作者)决定的特定声明版本的Gradle构建的。否则,您必须记录如何正确设置环境,包括安装哪个版本的Gradle

Java也是如此:确保清楚地记录需要或支持哪个版本


至于在WSL中构建,我遇到的唯一问题是远程构建缓存不工作。这是因为我已将Git配置为使用POSIX行尾(LF)签出源文件,而缓存是在Windows计算机上使用CRLF行尾(LF)填充的。听起来您并没有使用该功能,但除此之外,WSL中的一切都很好。

我始终建议使用gradle包装器,而不是希望每个人都有正确版本的gradle。除此之外,你做过其他的精神检查吗?爪哇之家?甚至可能像linux环境中的windows行结尾一样愚蠢?