Lombok找不到,之前还有,但把依赖抽取到公共的模块(这里是common模块)就会出问题。
原因:
maven中设置了lombok的依赖为:<optional>true</optional>
。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
但是,我的common模块没有用lombok,所以它不会添加进项目中,于是在其他模块在引用这个公共模块的时候自然也不会引入lombok这个包。
此外,还有一些类似的不导包的情况,如
-
maven中的
<scope>provided</scope>
,表示这个包我不提供,在部署的时候也不会放到服务器中(如servlet-api),其它项目引入我的时候也看不到这个包,因为自己不提供。 -
当
<scope>test</scope>
的时候也不会传递,因此spring-boot-test-starter
也别放common模块。
总而言之,scope为provided和test的maven依赖是一定不会传递给其它引用本模块的模块的,optional=true就要看情况。因此,这些包不能放在common模块中,或者需要改变scope或optional。