天行健,君子以自强不息;地势坤,君子以厚德载物。
每个人都有惰性,但不断学习是好好生活的根本,共勉!
文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。
文章目录
- 1. 场景
- 2. 报错
- 3. 分析
- 4. 解决
- 4.1 maven-plugin依赖添加
- 4.2 maven-plugin插件添加
- 4.3 删除之前的pod和镜像
- 4.4 重新CI
1. 场景
K8S部署Java项目 pod报错
2. 报错
使用log命令查看日志报错如下
kubectl logs podname -n ns-sb
no main manifest attribute, in app.jar
截图
3. 分析
报错表示在app.jar
中无法找到主类,也就是说在app.jar中无法识别main方法程序入口
这里需要配置一下,来指定入口类路径
4. 解决
在pom中添加maven-plugin的依赖和插件
注意,版本要和springboot保持一致不然可能会因为兼容问题报错
4.1 maven-plugin依赖添加
项目pom中添加插件
在pom中dependencies标签中添加maven-plugin依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.6.3</version>
</dependency>
4.2 maven-plugin插件添加
然后在build标签下的plugins标签中加入以下maven-plugin插件
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.6.3</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
4.3 删除之前的pod和镜像
确保将之前部署的pod的deploy删除,之前拉取的镜像也删除(详情参考:如何重新部署pod)
4.4 重新CI
修改后执行Gitlab的CI流程,跑完打印如下
打包
构建镜像
部署pod
问题解决
感谢阅读,祝君暴富!