5

我在将我们的项目迁移到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;
}

在根的包中我有module-info.java内容:

module javanine {
    requires lombok;
}

在根的项目中,我有 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());
}
4

3 回答 3

6

只需将您的模块配置如下:

module moduleName {
    requires static lombok;
}

于 2020-01-29T22:01:34.510 回答
4

我已经完成了一些修复 lombok-with-JDK9 问题的工作,特别是当您实际模块化代码时(与仅使用 JDK9 中的 javac 编译 java8 样式代码相比,这已经工作了一段时间)。

您能否在https://projectlombok.org/download-edge上发布最新的边缘版本?谢谢!

于 2018-02-06T20:35:32.393 回答
3

您可以在提供的范围内包含依赖项以启用构建,而无需将工件附加到库

   <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct-processor</artifactId>
            <version>1.3.0.Final</version>
        </dependency>
于 2019-07-26T18:13:21.563 回答