Java 将Maven项目配置为在Lombok.config上将Lombok使用标记为错误时失败

Java 将Maven项目配置为在Lombok.config上将Lombok使用标记为错误时失败,java,maven,lombok,Java,Maven,Lombok,我尝试将Maven项目配置为在Lombok.config上将Lombok使用标记为错误时失败 但是它只写一个带有错误消息的信息日志,它不会使构建失败。 有这样的配置吗 这里是一个示例项目。问候 lombok.config config.stopBubbling = true lombok.data.flagUsage = ERROR src/main/lombok/Example.java @lombok.Data public class Example { private Stri

我尝试将Maven项目配置为在Lombok.config上将Lombok使用标记为错误时失败

但是它只写一个带有错误消息的信息日志,它不会使构建失败。 有这样的配置吗

这里是一个示例项目。问候

lombok.config

config.stopBubbling = true
lombok.data.flagUsage = ERROR
src/main/lombok/Example.java

@lombok.Data
public class Example {
    private String msg;
}
public class Test {
    public static void main(String[] args) {
        Example ex = new Example();
        ex.setMsg("Hello");
    }
}
src/main/java/Test.java

@lombok.Data
public class Example {
    private String msg;
}
public class Test {
    public static void main(String[] args) {
        Example ex = new Example();
        ex.setMsg("Hello");
    }
}
pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>example</groupId>
    <artifactId>example</artifactId>
    <version>1.0-SNAPSHOT</version>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok-maven-plugin</artifactId>
                <version>1.18.12.0</version>
                <executions>
                    <execution>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>delombok</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

4.0.0
例子
例子
1.0-快照
UTF-8
1.8
1.8
org.projectlombok
龙目
1.18.12
假如
org.projectlombok
lombok maven插件
1.18.12.0
生成源
德隆博克
mvn编译

[INFO] Scanning for projects...
[INFO] ------------------------< org.example:example >-------------------------
[INFO] Building example 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] --- lombok-maven-plugin:1.18.12.0:delombok (default) @ example ---
example\src\main\lombok\Example.java:1: error: Use of @Data is flagged according to lombok configuration.
@lombok.Data
^
[INFO] Delombok complete.
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ example ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory example\src\main\resources
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ example ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to example\target\classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO]正在扫描项目。。。
[信息]----------------------------------------------------
[信息]构建示例1.0-快照
[信息]------------------------------------[jar]---------------------------------
[信息]---龙目巨人插件:1.18.12.0:delombok(默认)@example---
example\src\main\lombok\example.java:1:错误:根据lombok配置标记@Data的使用。
@龙目数据
^
[信息]德隆博克完成。
[信息]---maven资源插件:2.6:resources(默认资源)@example---
[信息]使用“UTF-8”编码复制筛选的资源。
[信息]跳过不存在的resourceDirectory示例\src\main\resources
[信息]---maven编译器插件:3.1:compile(默认编译)@example---
[信息]检测到更改-重新编译模块!
[INFO]将2个源文件编译为example\target\classes
[信息]------------------------------------------------------------------------
[信息]建立成功
[信息]------------------------------------------------------------------------

这可能是因为您使用的是
delombok
。常规汇编将失败。您是否必须使用
delombok
,或者是否可以切换到常规(启用注释处理)编译?事实上,对于示例项目,annotationProcessor解决了这个问题。不幸的是,对于我真正的项目(带Spring Boot的多模块,使用Lombok for Jackson的DTO或Hibernate的实体)来说,delombok实现所有目标的效果相当不错,而annotationProcessor一点也不差。Jackson和Hibernate应该可以正常使用Lombok编译。如果没有涉及其他注释处理器(或javadoc),我建议不要使用
delombok
。根据@JanRieke建议,我将注意力重新放在注释处理器上,并在配置中找到一个
-proc:none
,解释了它为什么不工作。最后我成功了,这应该能满足我的需要。谢谢