【发布时间】:2021-10-15 11:09:22
【问题描述】:
我们有一个 OSGI 框架,我们将在其中引入 Lombok。 在 pom.xml 我们添加了依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
</dependency>
但是 mvn install 编译仍然失败
org.eclipse.tycho:tycho-compiler-plugin:2.0.0:compile (default-compile) on project XXX: 编译失败:编译失败: [错误] ... [错误] ... [错误] XXX 类型的方法
setXXX(String)未定义
在 Eclipse 中,一切都可以编译并且工作正常。
lombok.jar 也被添加到 Bundle-ClassPath 的 MANIFEST.MF
我们将annotationProcessorPaths 添加到pom.xml 没有成功
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
编辑 即使在配置 tycho 编译器时它也不起作用
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-compiler-plugin</artifactId>
<version>${tycho-version}</version>
<configuration>
<source>${compileSource}</source>
<target>${compileSource}</target>
<compilerArguments>
<processor> lombok.launch.AnnotationProcessorHider$AnnotationProcessor
</processor>
</compilerArguments>
</configuration>
</plugin>
当我添加set MAVEN_OPTS="-javaagent:C:\\Eclipse\\lombok.jar" 编译工作时,有没有办法在pom.xml 的编译器配置中添加这个参数,并带有lombok.jar 的通用路径
【问题讨论】:
-
我相信第谷使用tycho-compiler-plugin而不是
maven-compiler-plugin -
是的,以上是我们测试的内容之一。即使这样它也不起作用:
org.eclipse.tycho tycho-compiler-plugin ${tycho-version} 插件>${compileSource} ${compileSource} lombok.launch.AnnotationProcessorHider$AnnotationProcessor -
edit您的问题以添加新信息
-
Eclipse bug 502181 似乎说无法为此配置 tycho
-
Lombok 重新连接编译器以发挥其魔力,这就是发生这些事情的原因。如果您只想要简单的 getter/setter 生成,请查看 Java 17 LTS 中的 Records,它是该语言的一部分,因此可以保证得到很好的支持,而无需 tycho-lombokizer 必须跳过的障碍。
标签: eclipse-plugin maven-3 lombok tycho