标签:depend 阶段 doc err integer www pid blog set
lombok可以使实体更简洁,主要是会在编译.class文件期间,生成get/set方法,还有hash/equals/toString等。
主要是可以让代码更简洁。
@Data//生成get/set/toString/hash/equals等 @Accessors(chain = true)//开启链式调用,即H2user user = new H2user().setId(1).setName("https://www.cnblogs.com/tomcatandjerry/").setAge(88); public class H2user { private Long id; private String name; private Integer age; }
在maven项目的pom依赖:
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.18</version> <scope>provided</scope> </dependency>
Maven scope=provided的作用范围:参考:http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
所以像lombok这样的依赖只作用于编译阶段,编译完成就没用了,可以从spring-boot的jar包里排除掉。
默认Spring Boot项目的pom配置:
<plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins>
但是执行mvn package,你会发现lombok这样的provided的依赖还是进了jar(your-spring-boot.jar\BOOT-INF\lib\)
这会增加最终的jar包的体积(当然有一些代码洁癖的人也是不能忍的)
解决方案:
spring-boot-maven-plugin官方目前给出的解决方案是:
<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>
原文地址:https://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/exclude-dependency.html
配置后,重新执行:mvn clean package, lombok的jar已经不在boot.jar里面,应用也可以正常启动: mvn spring-boot:run 或者 java -jar boot.jar
Spring Boot打jar包,排除lombok等scope=provided的依赖
标签:depend 阶段 doc err integer www pid blog set
原文地址:https://www.cnblogs.com/tomcatandjerry/p/10342345.html