带有Lombok@Log4j2注释错误的jaxb2 maven插件

带有Lombok@Log4j2注释错误的jaxb2 maven插件,jaxb,lombok,jaxb2-maven-plugin,Jaxb,Lombok,Jaxb2 Maven Plugin,使用Lombok的@Log4j2注释时,从代码创建XSD模式时遇到问题。我用一个POJO创建了一个MWE 使用@Log4j2注释时,我在创建架构时遇到一个错误:错误:找不到符号log.info(…);符号:变量日志。当我用记录器的特定定义替换注释时,我可以避免错误 Lombok注释的问题在哪里?我怎样才能避开它 MWE 有误: package de.mr.test.jaxbschemagenlombok; import javax.xml.bind.annotation.XmlAcce

使用
Lombok
@Log4j2
注释时,从代码创建XSD模式时遇到问题。我用一个POJO创建了一个MWE

使用
@Log4j2
注释时,我在创建架构时遇到一个错误:
错误:找不到符号log.info(…);符号:变量日志
。当我用记录器的特定定义替换注释时,我可以避免错误

Lombok注释的问题在哪里?我怎样才能避开它


MWE
  • 有误:

     package de.mr.test.jaxbschemagenlombok;
    
     import javax.xml.bind.annotation.XmlAccessType;
     import javax.xml.bind.annotation.XmlAccessorType;
     import javax.xml.bind.annotation.XmlRootElement;
    
     @Log4j2
     @XmlRootElement
     @XmlAccessorType(XmlAccessType.FIELD)
    
     public class POJO
     {
    
             private int attribute1 = 1;
             private double attribute2 = 2.;
             private String attribute3 = "test";
    
             public int getAttribute1() {return attribute1;}
             public void setAttribute1(int v) {this.attribute1 = v;}
    
             public double getAttribute2() {return attribute2;}
             public void setAttribute2(double v) {this.attribute2 = v;}
    
             public String getAttribute3() {return attribute3;}
             public void setAttribute3(String v) {this.attribute3 = v;}
    
             public void test(){
                     log.info("testmessage");
             }
    
     }
    
  • 无误: 包de.mr.test.jaxbschemagenlombok

     import javax.xml.bind.annotation.XmlAccessType;
     import javax.xml.bind.annotation.XmlAccessorType;
     import javax.xml.bind.annotation.XmlRootElement;
    
     //@Log4j2
     @XmlRootElement
     @XmlAccessorType(XmlAccessType.FIELD)
    
     public class POJO
     {
    
             private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(POJO.class);
    
             private int attribute1 = 1;
             private double attribute2 = 2.;
             private String attribute3 = "test";
    
             public int getAttribute1() {return attribute1;}
             public void setAttribute1(int v) {this.attribute1 = v;}
    
             public double getAttribute2() {return attribute2;}
             public void setAttribute2(double v) {this.attribute2 = v;}
    
             public String getAttribute3() {return attribute3;}
             public void setAttribute3(String v) {this.attribute3 = v;}
    
             public void test(){
                     log.info("testmessage");
             }
    
     }
    

聚甲醛

4.0.0
德米特先生
杰克斯马根隆博克
0.0.1
罐子
UTF-8
1.8
12
12
3.8.1
3.0.0-M2
3.2.0
2.5.3
2.13.1
2.13.1
1.18.14
1.18.12.0
2.4.0-b180830.0359
1.1
2.3.0-b170127.1453
2.5.0
EN
真的
假的
org.projectlombok
龙目
${lombok.version}
假如
org.apache.logging.log4j
log4japi
${log4j.api.version}
org.apache.logging.log4j
log4j型芯
${log4j.core.version}
javax.xml.bind
jaxb api
${javax.xml.bind.jaxbapi.version}
javax.activation
激活
${javax.activation.activation.version}
org.glassfish.jaxb
jaxb运行时
${org.glassfish.jaxb.jaxb runtime.version}
org.apache.maven.plugins
maven编译器插件
${maven.plugin.compiler.version}
${java.version}
${java.version}
UTF-8
org.projectlombok
龙目
${lombok.version}
org.apache.maven.plugins
maven enforcer插件
${maven.plugin.enforcer.version}
执行
${java.version}
org.apache.maven.plugins
maven发布插件
${maven.plugin.release.version}
真的
假的
org.projectlombok
lombok maven插件
${maven.plugin.lombok.version}
生成源
德隆博克
        <?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/xsd/maven-4.0.0.xsd">
            <modelVersion>4.0.0</modelVersion>
            
            <!-- TOOL INFO -->
            <groupId>de.mr.test</groupId>
            <artifactId>JAXBSchemagenLombok</artifactId>
            <version>0.0.1</version>
            <packaging>jar</packaging>
            
            <!-- PROPERTIES -->
            <properties>
                    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
                    <!-- System    -->
                    <java.version>1.8</java.version>
                    <maven.compiler.source>12</maven.compiler.source>
                    <maven.compiler.target>12</maven.compiler.target>
                    <maven.plugin.compiler.version>3.8.1</maven.plugin.compiler.version>
                    <maven.plugin.enforcer.version>3.0.0-M2</maven.plugin.enforcer.version>
                    <maven.plugin.jar.version>3.2.0</maven.plugin.jar.version>
                    <maven.plugin.release.version>2.5.3</maven.plugin.release.version>
                    <!-- Log4j2 -->
                    <log4j.api.version>2.13.1</log4j.api.version>
                    <log4j.core.version>2.13.1</log4j.core.version>
                    <!-- Lombok -->
                    <lombok.version>1.18.14</lombok.version>
                    <maven.plugin.lombok.version>1.18.12.0</maven.plugin.lombok.version>
                    <!-- Stuff for JAXB -->
                    <javax.xml.bind.jaxb-api.version>2.4.0-b180830.0359</javax.xml.bind.jaxb-api.version>
                    <javax.activation.activation.version>1.1</javax.activation.activation.version>
                    <org.glassfish.jaxb.jaxb-runtime.version>2.3.0-b170127.1453</org.glassfish.jaxb.jaxb-runtime.version>
                    <maven.plugin.jaxb2.version>2.5.0</maven.plugin.jaxb2.version>
                    <maven.plugin.jaxb2.locale>en</maven.plugin.jaxb2.locale>
                    <maven.plugin.jaxb2.clearOutputDir>true</maven.plugin.jaxb2.clearOutputDir>
                    <maven.plugin.jaxb2.createJavaDocAnnotations>false</maven.plugin.jaxb2.createJavaDocAnnotations>
            </properties>
            
            <!-- DEPENDENCIES -->
            <dependencies>
                    <!--           -->
                    <!-- 3rd party -->
                    <!--           -->
                    <!-- Lombok -->
                    <dependency>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <version>${lombok.version}</version>
                            <scope>provided</scope>
                    </dependency>
                    <!-- Log4j2 -->
                    <dependency>
                            <groupId>org.apache.logging.log4j</groupId>
                            <artifactId>log4j-api</artifactId>
                            <version>${log4j.api.version}</version>
                    </dependency>
                    <dependency>
                            <groupId>org.apache.logging.log4j</groupId>
                            <artifactId>log4j-core</artifactId>
                            <version>${log4j.core.version}</version>
                    </dependency>
                    <!-- Stuff for JAXB -->
                    <dependency>
                            <groupId>javax.xml.bind</groupId>
                            <artifactId>jaxb-api</artifactId>
                            <version>${javax.xml.bind.jaxb-api.version}</version>
                    </dependency>
                    <dependency>
                            <groupId>javax.activation</groupId>
                            <artifactId>activation</artifactId>
                            <version>${javax.activation.activation.version}</version>
                    </dependency>
                    <dependency>
                            <groupId>org.glassfish.jaxb</groupId>
                            <artifactId>jaxb-runtime</artifactId>
                            <version>${org.glassfish.jaxb.jaxb-runtime.version}</version>
                    </dependency>
            </dependencies>
            
            <!-- BUILD -->
            <build>
                    <!-- PLUGINS -->
                    <plugins>
                            
                            <plugin>
                                    <groupId>org.apache.maven.plugins</groupId>
                                    <artifactId>maven-compiler-plugin</artifactId>
                                    <version>${maven.plugin.compiler.version}</version>
                                    <configuration>
                                            <source>${java.version}</source>
                                            <target>${java.version}</target>
                                            <encoding>UTF-8</encoding>
                                            <annotationProcessorPaths>
                                                    <path>
                                                            <groupId>org.projectlombok</groupId>
                                                            <artifactId>lombok</artifactId>
                                                            <version>${lombok.version}</version>
                                                    </path>
                                            </annotationProcessorPaths>
                                    </configuration>
                            </plugin>
                            
                            <plugin>
                                    <groupId>org.apache.maven.plugins</groupId>
                                    <artifactId>maven-enforcer-plugin</artifactId>
                                    <version>${maven.plugin.enforcer.version}</version>
                                    <executions>
                                            <execution>
                                                    <goals>
                                                            <goal>enforce</goal>
                                                    </goals>
                                            </execution>
                                    </executions>
                                    <configuration>
                                            <rules>
                                                    <requireJavaVersion>
                                                            <version>${java.version}</version>
                                                    </requireJavaVersion>
                                            </rules>
                                    </configuration>
                            </plugin>
                            
                            <plugin>
                                    <groupId>org.apache.maven.plugins</groupId>
                                    <artifactId>maven-release-plugin</artifactId>
                                    <version>${maven.plugin.release.version}</version>
                                    <configuration>
                                            <localCheckout>true</localCheckout>
                                            <pushChanges>false</pushChanges>
                                    </configuration>
                            </plugin>
                            
                            <!-- Delombok -->
                            <plugin>
                                    <groupId>org.projectlombok</groupId>
                                    <artifactId>lombok-maven-plugin</artifactId>
                                    <version>${maven.plugin.lombok.version}</version>
                                    <executions>
                                            <execution>
                                                    <phase>generate-sources</phase>
                                                    <goals>
                                                            <goal>delombok</goal>
                                                    </goals>
                                            </execution>
                                    </executions>
                                    <configuration>
                                            <encoding>UTF-8</encoding>
                                            <addOutputDirectory>false</addOutputDirectory>
                                            <sourceDirectory>src/main/java</sourceDirectory>
                                            <withoutUnicodeEscape>true</withoutUnicodeEscape>
                                    </configuration>
                            </plugin>
                            
                            <!-- Generate a XSD schema -->
                            <plugin>
                                    <groupId>org.codehaus.mojo</groupId>
                                    <artifactId>jaxb2-maven-plugin</artifactId>
                                    <version>${maven.plugin.jaxb2.version}</version>
                                    <executions>
                                            <execution>
                                                    <id>schemagen</id>
                                                    <goals>
                                                            <goal>schemagen</goal>
                                                    </goals>
                                            </execution>
                                    </executions>
                                    <configuration>
                                            <sources>
                                                    <source>src/main/java/de/mr/test/jaxbschemagenlombok</source>
                                            </sources>
                                            <outputDirectory>${project.build.directory}/generated-sources/schemas</outputDirectory>
                                            <clearOutputDir>${maven.plugin.jaxb2.clearOutputDir}</clearOutputDir>
                                            <createJavaDocAnnotations>${maven.plugin.jaxb2.createJavaDocAnnotations}</createJavaDocAnnotations>
                                            <locale>${maven.plugin.jaxb2.locale}</locale>
                                    </configuration>
                            </plugin>
                    </plugins>
                    
                    <!-- THIS IS THE FINAL NAME OF THE JAR -->
                    <finalName>${project.artifactId}-${project.version}</finalName>
                    
            </build>
    </project>