我正在用Gradle-Kotlin脚本设置一个简单的Kotlin程序。初始build.gradle.kts
文件和settings.gradle.kts
文件非常简单:
build.gradle.kts
文件:
plugins {
id("org.jetbrains.kotlin.jvm") version "1.4.10"
}
group = "edu.nju.alex.wang"
version = "1.0-SNAPSHOT"
repositories {
mavenCentral()
}
dependencies {
implementation(kotlin("stdlib"))
}
settings.gradle.kts
文件:
rootProject.name = "Barabra"
我想做的是使用pluginManangement
块来控制Kotlin JVM插件的版本。所以我把代码改成了这个。
build.gradle.kts
文件:
plugins {
id("org.jetbrains.kotlin.jvm")
}
group = "edu.nju.alex.wang"
version = "1.0-SNAPSHOT"
dependencies {
implementation(kotlin("stdlib"))
}
和settings.gradle.kts
文件:
pluginManagement {
repositories {
mavenCentral()
jcenter()
google()
}
plugins {
id("org.jetbrains.kotlin.jvm") version "1.4.10"
}
}
rootProject.name = "Barabra"
然而,当我尝试执行Gradle任务时,它报告了一个错误:
* Where:
Build file '/home/jue/Storage/Barbara/Barabra/build.gradle.kts' line: 1
* What went wrong:
Plugin [id: 'org.jetbrains.kotlin.jvm', version: '1.4.10'] was not found in any of the following sources:
- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Plugin Repositories (could not resolve plugin artifact 'org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin:1.4.10')
Searched in the following repositories:
MavenRepo
BintrayJCenter
Google
我是做错了什么,还是这根本不起作用?
您的问题说明可以在这里找到:https://docs.gradle.org/current/userguide/plugins.html#sec:custom_plugin_repositories
pluginManagement { repositories { maven(url = "../maven-repo") gradlePluginPortal() ivy(url = "../ivy-repo") } }
这篇文章告诉Gradle首先查看Maven存储库../maven repo解析插件时,然后检查Gradle插件门户(如果在Maven存储库中找不到插件(如果如果不希望搜索Gradle插件门户,请省略gradlePluginPortal((行。最后,Ivy存储库位于/常春藤回购将检查
在您的案例中,您在repositories
(google、jcenter、mavenCentral(中添加了一些repos,但您没有添加gradlePluginPortal
,这是解析Gradle插件的默认位置。
1.4.10
版本中的org.jetbrains.kotlin.jvm
插件似乎(目前?(在Gradle Plugins repository
之外的其他存储库中不可用。
那么,如何解决这个问题:从pluginManagement
中删除整个repositories
块(如果您不需要从自己的特定repo中解析插件(,或者在列表中添加gradlePluginPortal()
。
我发现最常见的原因是org.getbrains.kotlin.jvm插件的版本。在这里找到正确的插件最新版本,在build.gradle中更改版本并重新加载。