小说章节收费网站建设,怎么给客户推网站建设,自己建一个网站需要多少钱?,哪些网站是动态页面Kotlin版本实现Gradle插件
本文链接#xff1a;https://blog.csdn.net/feather_wch/article/details/131746478
创建一个Gradle项目#xff0c;并选择Kotlin/JVM作为项目SDK。假设项目的名称为hello-plugin。在项目中创建一个新的源集#xff0c;比如plugin#xff0c;用…Kotlin版本实现Gradle插件
本文链接https://blog.csdn.net/feather_wch/article/details/131746478
创建一个Gradle项目并选择Kotlin/JVM作为项目SDK。假设项目的名称为hello-plugin。在项目中创建一个新的源集比如plugin用于存放插件的源代码和资源。在src目录下创建一个plugin目录并在其中创建一个kotlin目录和一个resources目录。在plugin源集中创建一个实现了Plugin接口的类比如HelloPlugin。在src/plugin/kotlin/com/example目录下创建一个HelloPlugin.kt文件内容如下
package com.exampleimport org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.tasks.Exec// 实现Plugin接口
class HelloPlugin : PluginProject {// 重写apply方法override fun apply(project: Project) {// 在项目中添加一个hello任务用于打印一句问候语project.tasks.register(hello, Exec::class.java) {it.commandLine(echo, Hello from plugin!)}}
}在plugin源集中创建一个resources/META-INF/gradle-plugins目录用于存放插件的属性文件。在该目录下创建一个hello.properties文件内容如下
# 指定插件类的全限定名
implementation-classcom.example.HelloPlugin在项目根目录下创建一个settings.gradle.kts文件用于配置项目名称和版本号。内容如下
// 配置项目名称
rootProject.name hello-plugin
// 配置项目版本号
rootProject.version 1.0.0在项目根目录下创建一个build.gradle.kts文件用于配置项目的构建逻辑。在这里你需要添加一些依赖项比如gradleApi()和kotlin(“stdlib”)以及一些任务比如jar和publishToMavenLocal。内容如下
plugins {// 应用java插件java// 应用kotlin插件kotlin(jvm) version 1.6.0// 应用maven-publish插件maven-publish
}// 配置源集
sourceSets {// 获取plugin源集val plugin by getting {// 设置编译输出目录output.setClassesDirs(files($buildDir/classes/plugin))// 设置资源输出目录output.setResourcesDir($buildDir/resources/plugin)// 设置编译输入目录java.srcDir(src/plugin/kotlin)// 设置资源输入目录resources.srcDir(src/plugin/resources)}
}// 配置依赖项
dependencies {// 添加gradleApi依赖项用于访问Gradle APIimplementation(gradleApi())// 添加kotlin标准库依赖项用于编译Kotlin代码implementation(kotlin(stdlib))
}// 配置jar任务用于打包插件类和资源为jar文件
tasks.jar {// 设置jar文件名为项目名称-版本号.jar比如hello-plugin-1.0.0.jararchiveFileName.set(${project.name}-${project.version}.jar)// 设置jar文件所在目录为build/libs目录destinationDirectory.set(file($buildDir/libs))// 从plugin源集中获取类和资源并添加到jar文件中from(sourceSets[plugin].output)
}// 配置publishing扩展用于发布插件到Maven仓库
publishing {// 配置发布到本地Maven仓库的方式repositories {mavenLocal()}// 配置发布的内容publications {// 创建一个MavenPublication类型的publication并命名为pluginJarcreateMavenPublication(pluginJar) {// 设置groupId为com.examplegroupId com.example// 设置artifactId为项目名称artifactId project.name// 设置version为项目版本号version project.version.toString()// 设置发布的artifact为jar任务生成的jar文件artifact(tasks.jar)}}
}在IDE中运行publishToMavenLocal任务将插件打包成jar文件并发布到本地Maven仓库。你可以在~/.m2/repository/com/example/hello-plugin/1.0.0目录下找到发布的文件包括hello-plugin-1.0.0.jar和hello-plugin-1.0.0.pom。在另一个Gradle项目中你可以使用plugins块来应用你开发的插件比如plugins { id(“hello”) version “1.0.0” }。这样就可以使用插件提供的功能了比如运行hello任务打印一句问候语。