gpt4 book ai didi

kotlin - Gradle build 在 WSL 上什么都不做

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

我正在编写一个 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

呃?我能理解它是否因为某些先决条件或其他条件不可用而引发错误。但是没有错误,什么都没有?怎么回事?

最佳答案

您目前使用的是 Gradle 的 Kotlin 插件的最新版本 (1.3.72)。但是,您使用的是非常旧版本的 Gradle (4.4.1)。正如您可以从 Kotlin documentation 中读到的那样:

The Kotlin Gradle plugin 1.3.72 works with Gradle 4.9 and later.

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

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

对于 Java 也是如此:一定要清楚地记录需要或支持哪个版本。

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

关于kotlin - Gradle build 在 WSL 上什么都不做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61740576/

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