我正在学习使用gradle(使用Kotlin)。
我发现从模板创建一个gradle插件很容易。
但我还是不明白。我有两个问题:
1.我发布的插件正确吗?
1.如何使用这个插件?
我是这么做的:
这里是一些创造的历史
gradle init
Couldn't get final path for handle 0x11a0, error code: 2
> Task :wrapper
Caught exception: Couldn't resolve final path of, error = 2: Z:\
Select type of project to generate:
1: basic
2: application
3: library
4: Gradle plugin
Enter selection (default: basic) [1..4] 4
Select implementation language:
1: Groovy
2: Java
3: Kotlin
Enter selection (default: Java) [1..3] 3
Select build script DSL:
1: Kotlin
2: Groovy
Enter selection (default: Kotlin) [1..2] 1
Project name (default: asd): asd
Source package (default: asd): com.asd
......
BUILD SUCCESSFUL in 18s
完成这些操作后,就生成了helloworld插件
package com.asd
class AsdPlugin: Plugin<Project> {
override fun apply(project: Project) {
// Register a task
project.tasks.register("greeting") { task ->
task.doLast {
println("Hello from plugin 'com.asd.greeting'")
}
}
}
}
build.gradle.kts
比例:
gradlePlugin {
// Define the plugin
val greeting by plugins.creating {
id = "com.asd.greeting"
implementationClass = "com.asd.AsdPlugin"
}
}
所以,我把maven-publish
添加到这个文件中。从gradle文档复制了某些部分。并成功发布到我的本地maven(由docker创建)。(我只是在IDEA右边的docker中双击publish
,可能和./gradlew publish
一样)
group = "aaa.bbb"
version = "1.4"
publishing {
publications {
create<MavenPublication>("myLibrary") {
from(components["java"])
}
}
repositories {
maven {
credentials {
username = "admin"
password = "123456"
}
url = uri("http://localhost:8081/repository/hellomaven/")
isAllowInsecureProtocol = true
}
}
}
现在我如何在另一个项目中应用此插件?
plugins {
kotlin("jvm") version "1.9.0"
id("What is the id of the plugin above?")
}
repositories {
mavenCentral()
maven {
credentials {
username = "admin"
password = "123456"
}
url = uri("http://localhost:8081/repository/hellomaven/")
isAllowInsecureProtocol = true
}
}
dependencies {
implementation("aaa.bbb:plugin:1.4") // should I implement this ?
}
1条答案
按热度按时间ddrv8njm1#
插件的ID是您在
gradlePlugin { }
中指定的。在本例中,您将ID指定为com.asd.greeting
。您还将插件版本定义为1.4
。因此,这使您的插件应用程序成为:但是,由于这不会发布到Maven存储库(如Gradle插件门户或Maven Central),因此您需要配置Gradle构建以包含您发布插件的位置。在本例中,它似乎是本地托管的Maven存储库
http://localhost:8081/repository/hellomaven/
。这可以在设置中配置:您可以在这里看到,我定义了一个Maven存储库,其中的位置是您发布到的URL。我还配置使用Gradle插件门户,因为Gradle将查看所有存储库以查找插件。