带有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>