我想将我的项目拆分为子项目。IntelliJ IDE 的默认 Gradle 设置是:
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
kotlin("jvm") version "1.3.50"
}
group = "project"
version = "0.0.1-SNAPSHOT"
repositories {
mavenCentral()
}
dependencies {
implementation(kotlin("stdlib-jdk8"))
}
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = "1.8"
}
Run Code Online (Sandbox Code Playgroud)
该设置编译。但是我不想在每个子项目中重复该代码。所以我改变了build.gradle.kts到
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
subprojects {
plugins {
kotlin("jvm") version "1.3.50"
}
group = "project"
version = "0.0.1-SNAPSHOT"
repositories {
mavenCentral()
}
dependencies {
implementation(kotlin("stdlib-jdk8"))
}
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = "1.8"
}
}
Run Code Online (Sandbox Code Playgroud)
但我得到了例外:
e: C:[...]\build.gradle.kts:1:12: 未解析的参考: jetbrains e: C:[...]\build.gradle.kts:16:9: 未解析的参考: 实现 e: C:[...]\build.gradle.kts:19:20: 未解决的参考:KotlinCompile e: C:[...]\build.gradle.kts:19:35: 类型不匹配:推断类型为 () -> 单位但 Class<TypeVariable(S)!>! 预期 e: C:[...]\build.gradle.kts:20:9: Unresolved reference: kotlinOptions
FAILURE:构建失败,出现异常。
其中:构建文件“C:[...]\build.gradle.kts”行:1
出了什么问题:脚本编译错误:
第 1 行:导入 org.jetbrains.kotlin.gradle.tasks.KotlinCompile ^ 未解决的参考:jetbrains
第 16 行: implementation(kotlin("stdlib-jdk8")) ^ Unresolved reference: implementation
第 19 行:tasks.withType { ^ 未解析参考:KotlinCompile
第 19 行:tasks.withType { ^ Type mismatch: inferred type is () -> Unit but Class<TypeVariable(S)!>! 预料之中
第 20 行:kotlinOptions.jvmTarget = "1.8" ^ 未解决的参考:kotlinOptions
5 错误
尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。使用 --scan 运行以获得完整的见解。
在https://help.gradle.org获取更多帮助
1 秒内构建失败
我认为有一个简单的语法错误,但我找不到。
Fra*_*teo 21
不知道如何你是不是也通过嵌套收到错误plugins { }
下块subprojects { }
作为陈述插件DSL的局限:
该
plugins {}
块还必须是构建脚本中的顶级语句。它不能嵌套在另一个结构中(例如 if 语句或 for 循环)。
因此,要解决您的问题,请将 移到plugins {}
顶部并强制应用subprojects {}
块中的插件:
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
kotlin("jvm") version "1.3.50" apply false
}
subprojects {
apply {
plugin("org.jetbrains.kotlin.jvm")
}
group = "project"
version = "0.0.1-SNAPSHOT"
repositories {
mavenCentral()
}
val implementation by configurations
dependencies {
implementation(kotlin("stdlib-jdk8"))
}
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = "1.8"
}
}
Run Code Online (Sandbox Code Playgroud)
您可以apply false
在Method details中阅读有关该部分的更多信息,该部分PluginDependenciesSpec
是块的类型/范围plugins {}
。
您可以val implementation by configurations
在了解当类型安全模型访问器不可用时该怎么做中阅读有关该部分的更多信息
归档时间: |
|
查看次数: |
11580 次 |
最近记录: |