Gradle Lombok 插件使用教程
1. 项目的目录结构及介绍
Gradle Lombok 插件的 GitHub 仓库目录结构如下:
gradle-lombok/
├── gradle/
│ └── wrapper/
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── franzbecker/
│ │ │ └── gradle/
│ │ │ └── lombok/
│ │ │ ├── LombokPlugin.java
│ │ │ └── tasks/
│ │ │ └── Delombok.java
│ │ └── resources/
│ │ └── META-INF/
│ │ └── gradle-plugins/
│ │ └── org.franzbecker.gradle-lombok.properties
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── franzbecker/
│ │ └── gradle/
│ │ └── lombok/
│ │ ├── LombokPluginTest.java
│ │ └── tasks/
│ │ └── DelombokTest.java
│ └── resources/
├── build.gradle
├── gradle.properties
├── settings.gradle
├── LICENSE
├── README.md
└── .gitignore
目录结构介绍
gradle/:包含 Gradle Wrapper 文件,用于确保项目使用特定版本的 Gradle。src/:源代码目录,包含主代码和测试代码。main/:主代码目录,包含插件的主要实现。java/:Java 源代码目录。resources/:资源文件目录,包含插件的配置文件。
test/:测试代码目录,包含插件的测试用例。
build.gradle:Gradle 构建脚本,定义项目的依赖和任务。gradle.properties:Gradle 属性文件,包含项目的配置属性。settings.gradle:Gradle 设置文件,定义项目的模块和仓库。LICENSE:项目许可证文件。README.md:项目说明文档。.gitignore:Git 忽略文件配置。
2. 项目的启动文件介绍
项目的启动文件主要是 LombokPlugin.java,位于 src/main/java/org/franzbecker/gradle/lombok/LombokPlugin.java。
LombokPlugin.java 介绍
LombokPlugin.java 是 Gradle Lombok 插件的主要实现类。它实现了 Plugin<Project> 接口,并在 apply 方法中定义了插件的主要逻辑,包括添加 Lombok 依赖和配置 Delombok 任务。
package org.franzbecker.gradle.lombok;
import org.franzbecker.gradle.lombok.task.Delombok;
import org.gradle.api.Plugin;
import org.gradle.api.Project;
import org.gradle.api.tasks.compile.JavaCompile;
public class LombokPlugin implements Plugin<Project> {
@Override
public void apply(Project project) {
// 添加 Lombok 依赖
project.getDependencies().add("compileOnly", "org.projectlombok:lombok:1.18.16");
project.getDependencies().add("annotationProcessor", "org.projectlombok:lombok:1.18.16");
// 配置 Delombok 任务
project.getTasks().create("delombok", Delombok.class, delombok -> {
delombok.setGroup("lombok");
delombok.setDescription("Delomboks your code");
delombok.setSource(project.getProjectDir());
delombok.setDestinationDir(project.getBuildDir());
});
// 配置 JavaCompile 任务
project.getTasks().withType(JavaCompile.class, compile -> {
compile.getOptions().setAnnotationProcessorPath(project.getConfigurations().getByName("annotationProcessor"));
});
}
}
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



