lombok注解失效问题java: 无法将类 com.example.testtwo.pojo.Result中的构造器 Result应用到给定类型;java: 找不到符号 符号: 变量 log

问题

解决方法

将pom.xml文件中的圈出的代码删掉

完整配置与简化配置区别

这两段Maven配置的主要区别在于是否包含`maven-compiler-plugin`的配置。

第一段配置(完整配置)
 

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <annotationProcessorPaths>
                    <path>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                    </path>
                </annotationProcessorPaths>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <excludes>
                    <exclude>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                    </exclude>
                </excludes>
            </configuration>
        </plugin>
    </plugins>
</build>

第二段配置(简化配置)
 

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <excludes>
                    <exclude>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                    </exclude>
                </excludes>
            </configuration>
        </plugin>
    </plugins>
</build>

主要区别

1. maven-compiler-plugin配置:

   - 第一段配置显式配置了`maven-compiler-plugin`,并指定了Lombok作为注解处理器
   - 第二段配置没有包含这个插件配置

2. Lombok处理方式:

   - 第一段配置确保在编译阶段正确处理Lombok注解
   - 第二段配置依赖默认的编译行为,可能在某些环境下需要额外的Lombok配置

3. 打包排除:

   - 两段配置都包含了spring-boot-maven-plugin的配置,排除了Lombok从最终包中

使用建议

1. 使用第一段配置(完整配置)当:

   - 项目中使用Lombok
   - 需要确保编译时正确处理Lombok注解
   - 开发环境可能没有全局配置Lombok注解处理器

2. 使用第二段配置(简化配置)当:

   - 项目中没有使用Lombok
   - 或者开发环境已经全局配置了Lombok支持
   - 只需要确保打包时不包含Lombok

补充说明

- 现代Spring Boot项目通常不需要显式配置maven-compiler-plugin,因为:
  - 大多数IDE已经内置支持Lombok
  - Maven的默认编译器配置通常足够

- spring-boot-maven-plugin的排除配置是必要的,因为:
  - Lombok是编译时依赖,不应该包含在最终部署包中
  - 可以减少部署包的大小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值