这是关于在Gradle中构建Kotlin + Java 9项目的后续内容,链接如下:Building a Kotlin + Java 9 project with Gradle。在链接的帖子中使用了Groovy的Gradle,而我使用的是Kotlin DSL。
基本上,我有一个Gradle项目,具有以下结构(仅列出相关内容):
通常我会在它上运行gradle run,但这会导致以下错误:
现在这就是我的构建文件的样子。
基本上,我有一个Gradle项目,具有以下结构(仅列出相关内容):
src/
| main/
| | kotlin/
| | | com/example/testproject/
| | | | Main.kt
| | | module-info.java
build.gradle.kts
settings.gradle
通常我会在它上运行gradle run,但这会导致以下错误:
module-info.java:3: error: module not found: kotlin.stdlib
requires kotlin.stdlib;
现在这就是我的构建文件的样子。
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
buildscript {
var kotlin_version: String by extra
kotlin_version = "1.2.41"
repositories {
mavenCentral()
}
dependencies {
classpath(kotlin("gradle-plugin", kotlin_version))
}
}
repositories {
mavenCentral()
}
plugins {
kotlin("jvm") version "1.2.41"
application
}
val kotlin_version: String by extra
dependencies {
implementation(kotlin("stdlib", kotlin_version))
implementation(kotlin("stdlib-jdk8", kotlin_version))
implementation(kotlin("runtime", kotlin_version))
implementation(kotlin("reflect", kotlin_version))
}
val group = "com.example"
application {
mainClassName = "$group.testproject.Main"
}
java {
sourceCompatibility = JavaVersion.VERSION_1_10
targetCompatibility = sourceCompatibility
sourceSets {
"main" {
java.srcDirs("src/main/kotlin")
}
}
}
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = "1.8"
}
这是我的module-info.java文件:
module com.example.testproject {
// Kotlin compatibility
requires kotlin.stdlib;
exports com.example.testproject;
}
问题:如何运行链接帖子(或任何其他解决方案)提供的解决方案,以便使用Java 9/10环境编译采用Gradle的Kotlin DSL的Kotlin项目?