maven-3 - 使用 maven 和 java 8 使用 lombok 进行编译

标签 maven-3 java-8 lombok

我正在尝试使用 lombok.jar 注释的文件使用 Java 8 早期访问版本之一使用 maven 3 进行编译。我已将 maven 配置为使用 java 8 编译器。我正在编译的代码在 maven central 中有一个为 lombok 0.12 定义的依赖项。但是,当我使用 maven 编译时,出现以下错误:

[ERROR] symbol:   variable log
[ERROR] location: class Foo
[ERROR] C:.....\Foo.java:[319,33] error: cannot find symbol

我在 Debug模式下运行了 maven,并且指定的类路径条目指出 lombok 0.12 jar 文件位于项目的类路径中。此外,我尝试在我的类路径中专门设置 lombok.jar(并且我可以在 env.CLASSPATH 中在 maven Debug模式中看到)它创建了相同的结果。

一切都在 eclipse 中构建和编译得很好——我在 maven 配置/环境中做错了什么,以至于我无法在 eclipse 之外编译成功?

最佳答案

回答我自己的问题——问题在于 lombok (0.12.0) 的版本在 java 8 上不能很好地工作。为了解决这个问题,我使用了 cutting edge version of lombok ,将它安装到我本地的 maven repo 中

mvn install:install-file -Dfile=lombok-edge.jar -DgroupId=org.projectlombok -DartifactId=lombok-edge -Dversion=0.12.1 -Dpackaging=jar 

然后相应地更改了我的 pom 中的依赖项。

一旦我这样做了,我就可以从命令行 maven 编译了。

关于maven-3 - 使用 maven 和 java 8 使用 lombok 进行编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19169744/

相关文章:

java - Tomcat 6/7,Java 8 : Can't compile JSP: [various types] cannot be resolved

java - MapStruct @MappingTarget 生成一个空方法

java - 编译器无法识别 Lombok Getter 的覆盖方法

Maven 依赖插件在构建类路径和树之间的排序差异

Tomcat 9 的 Maven 插件

Maven 3 - 在 .jar 中分发自定义插件?

maven - Nexus 找不到项目 pom.xml 的签名

java - 将带有分隔符的字符串映射到字符串列表或新对象

java - 使用 String hashCode() 方法?