以下所有的填坑都是本人在实际开发过程中遇到的问题,包含打包,部署和启动
随着微服务的流行,项目也随之增加,打包和部署变得更加困难,以下是打包遇到的坑:
现在有多个服务,比如:user服务,公共common包(不是服务,不需要appclication启动类),当然还有一个parent父项目,但不是服务。
问题:
1、此时打包common报错,Maven cannot resolve spring-boot-maven-plugin
结局:这是因为common服务的pom.xml增加了插件
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> </plugin> </plugins> </build>
把这段注释掉即可,如果common包集成了prarent父项目,记得也要把父项目的注释掉,之后可以按父项目install,也可以单个项目install
2、打user服务包的时候,有时候会遇到需要跳出test测试(报错忘记了)
解决:在pom.xml的build的plugins中添加一个plugin的配置,去掉test测试
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!--添加配置跳过测试--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.1</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <!--添加配置跳过测试--> </plugins> </build>
3、包打好后,部署有可能出现bean循环引用问题,本地项目启动又没有问题,奇奇怪怪啊
public class ClassA {
@Autowired
ClassB classB;
}
public class ClassB {
@Autowired
ClassA classA
}
解决:可以在调用引用的时候加上懒加载机制,@Lazy,至于配置文件那种就不推荐了,基本上没人使用了
@Autowired
@Lazy
private ClassA classA;
@Autowired
@Lazy
private ClassB classB;
如有问题请多多联系,欢迎纠正交流,微信号:441338280,QQ:441338280