Java库delombok编译时的代码[关闭]

Posted

技术标签:

【中文标题】Java库delombok编译时的代码[关闭]【英文标题】:Java library delombok the code at compile time [closed] 【发布时间】:2022-01-22 04:38:28 【问题描述】:

我正在构建一个 java 库并在其中使用 Lombok。但我想在编译时反编译 lombok 代码,这样该库的用户就不必导入 lombok 依赖项。

我的 build.gradle 看起来像这样

apply plugin: 'java-library'

repositories 
  mavenCentral()


dependencies 
    compileOnly "org.projectlombok:lombok:1.18.16"
    annotationProcessor "org.projectlombok:lombok:1.18.16"

【问题讨论】:

为什么要反编译 lombok? 不确定我是否理解这个问题。首先,我认为 Lombok 只是生成了代码,但它本身并没有包含在您的类或 jar 文件中。其次,如果你确实使用 Lombok,你想如何删除它?例如,如果您使用 Lombok 生成的 setter,然后将其删除,您的代码会中断吗? 【参考方案1】:

我正在构建一个 java 库并在其中使用 Lombok。但我想在编译时反编译 lombok 代码,这样该库的用户就不必导入 lombok 依赖项。

你误解了龙目岛。 使用 lombok 编译的代码的用户不需要 Lombok。 Lombok 是“仅编译时依赖项”,并且仅在编译实际使用 lombok 的内容时。

lombok 完成后,lombok 本身就没有任何东西了。

换句话说,你现在拥有什么?这就是你所需要的。没有什么可做的了。试试吧!完成后你可以反编译你自己的程序,你会发现它里面的任何地方都不存在lombok注解。您可以编写在类路径上不使用 lombok 的程序/库的代码,并且它的工作原理是一样的。

【讨论】:

以上是关于Java库delombok编译时的代码[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Java到C交叉编译[关闭]

关于与 facebook 愚蠢库链接时的编译问题

编译 IOS 应用程序时的库问题

编译 FLTK 程序时的问题

java代码,编译后没有输出[关闭]

gcc新版本号引起的编译错误(命令运行时的外部库输入位置)