【发布时间】:2021-04-16 07:20:06
【问题描述】:
我想从本地 jar 加载我的自定义插件。 jar 文件编译良好,当我检查它时,清单和插件类都在那里。
gradlePlugin {
plugins {
create("asdf") { // <-- I really call it "asdf" in the kts script
id = "asdf"
implementationClass = "pluginTest.TestPlugin"
version = "1.4.0"
}
}
}
该插件还没有做任何有用的事情,因为它应该是一个概念验证,以确保它确实有效:
class TestPlugin : Plugin<Project> {
override fun apply(project: Project) {
println("Hallo TestPlugin!")
}
}
然后我尝试在另一个项目中像这样使用它:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath(files("..\\..\\path\\to\\pluginTest.jar"))
}
}
plugins {
id("asdf") version "1.4.0"
}
但它一直告诉我:
在以下任何来源中都找不到插件 [id: 'asdf', version: '1.4.0']:
我在这里缺少什么?我使用 Gradle v6.5。
【问题讨论】:
-
可能是存储库部分需要
flatDir“存储库”?我不习惯处理本地文件,但我猜它可能类似于stackoverflow.com/questions/20700053/… -
另一个选项可能是带有版本化插件的
plugins {}块不适用于这样的普通文件。相反,也许您可以只使用apply<TestPlugin>()而不是整个plugins块?他们在本教程的开头是这样做的:docs.gradle.org/current/userguide/… -
@Joffrey 我尝试了这两个建议。不幸的是,Gradle 没有购买它们。我想我毕竟必须设置一个本地 maven :-( 嗯,这太令人沮丧了。
-
@Joffrey 你可能想看看我的回答;-] 可以使用 jar 文件。
标签: kotlin gradle gradle-kotlin-dsl kotlin-gradle-plugin