在将项目迁移到 Java 9。
期间,我遇到了问题在我更新Java 9之后,我尝试运行项目,遇到编译器错误: -
Error:(6, 1) java: package javax.annotation is not visible
(package javax.annotation is declared in module java.xml.ws.annotation, which is not in the module graph)
但我找到了解决方案如何解决它。 我添加了lombok.config
个文件。
然后将module-info.java
文件添加到项目编译器后再次显示错误
Error:(10, 26) java: variable title not initialized in the default constructor
项目示例:
我们有实体Store
:
@AllArgsConstructor
@Getter
public class Story {
private final String title;
}
在root的包中我有 module-info.java
的内容:
module javanine {
requires lombok;
}
在root的项目中我有 lombok.config 文件:
lombok.addJavaxGeneratedAnnotation = false
lombok.anyConstructor.suppressConstructorProperties = true
config.stopBubbling = true
在我称之为代码的某处:
public static void main(String[] args) {
Story story = new Story("how as");
System.out.println(story.getTitle());
}
答案 0 :(得分:3)
我已经完成了修复lombok-with-JDK9问题的工作,特别是当你实际模块化你的代码时(而不是仅使用JDK9中的javac编译java8样式代码已经工作了一段时间)。
你可以在https://projectlombok.org/download-edge旋转时给出最新的边缘释放吗?谢谢!
答案 1 :(得分:1)
只需按照以下步骤配置模块:
module moduleName {
requires static lombok;
}
答案 2 :(得分:0)
您可以在提供的范围内包括依赖项以启用构建,而无需将工件附加到库
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.3.0.Final</version>
</dependency>