当前位置: 首页 > news >正文

上海网站建站多少钱泉州百度seo

上海网站建站多少钱,泉州百度seo,网站在线报名怎么做,新闻网站如何做推广Maven项目的Jar包打包问题-没有主清单属性&&ClassNotFoundException 与 NoClassDefFoundError 文章目录 Maven项目的Jar包打包问题-没有主清单属性&&ClassNotFoundException 与 NoClassDefFoundError1、问题出现1.1、Jar包运行:没有主清单属性解决方…

Maven项目的Jar包打包问题-没有主清单属性&&ClassNotFoundException 与 NoClassDefFoundError

文章目录

  • Maven项目的Jar包打包问题-没有主清单属性&&ClassNotFoundException 与 NoClassDefFoundError
    • 1、问题出现
      • 1.1、Jar包运行:没有主清单属性
      • 解决方案
      • 1.2、Springboot打包 Jar 出现 java.lang.NoClassDefFoundError 的问题
      • 解决方案
    • 2、参考文献

这两个问题的出现场景是,你打包完一个SpringBoot、Maven项目,上传Jar包到服务器运行的时候遇到的。也算是比较经典的两个问题了,如果你在打包项目的时候,很容易遇到,这篇文章就是用来一劳永逸地解决它们。

1、问题出现

1.1、Jar包运行:没有主清单属性

img

解决方案

其实这个问题主要是在IDEA打包环节出现了问题,当我们对打包好的jar包进行解压以后会发现有一个MANIFEST.MF文件,此文件就是jar运行时要查找的清单目录。
主清单数据,就是我们要运行的主类即程序入口,缺少主清单属性,就不知道从哪开始运行。
因此我们需要对项目进行配置,指定程序入口。

我们需要在POM文件中引入:

<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

spring-boot-maven-plugin是一个Spring Boot插件,用于简化Spring Boot项目的构建和打包。它可以自动化地创建可执行的JAR文件,包括一个嵌入式的Tomcat服务器,这样你就可以直接运行你的应用程序,而不需要先安装Java或Tomcat。

1.2、Springboot打包 Jar 出现 java.lang.NoClassDefFoundError 的问题

Caused by: java.lang.ClassNotFoundException: AAA

Caused by: java.lang.NoClassDefFoundError: AAA

Caused by: java.lang.reflect.InvocationTargetException

java.lang.IllegalArgumentException: Unable to create serializer “com.esotericsoftware.kryo.serializers.FieldSerializer” for class:com.xxx.yyy.BBB

这个问题的出现其实还是跟打包插件有关系,我不赞同这篇文章的说法 《【Springboot】打包 Jar 出现 java.lang.NoClassDefFoundError 的问题》

,这篇文章说和引入依赖本身有问题。大家可以试试这个文章的解决方案。

解决方案

谈到maven的打包,我们需要知道我们平时打包的插件有两种:

  • maven-jar-plugin
            <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId></plugin>
  • maven-assembly-plugin[推荐!]

这个插件的主要作用是帮助你构建一个包含所有依赖的JAR文件。

            <plugin><artifactId>maven-assembly-plugin</artifactId><configuration><appendAssemblyId>true</appendAssemblyId><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs></configuration></plugin>

前者为原始jar包,类似于maven-jar打包里面的origin-jar,后者with-dependencies为包含pom中费provided依赖的jar包,如果线上环境未提供这些依赖,就得使用with-dependencies的jar包。

解决:
使用 maven-assembly-plugin 上传了原始jar包,而生产环境中没有AAA,所以BBB中调用显示no class found,改为上传with-dependicies包后,程序正常运行.

我在打包好jar包以后,上传了服务器,在服务器运行jar包的时候同时遇到了上面两个问题,最后我的pom文件是这么写的:

 <build><plugins><plugin><artifactId>maven-assembly-plugin</artifactId><configuration><appendAssemblyId>true</appendAssemblyId><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

其实就是综合了SpringBoot运行的插件spring-boot-maven-plugin和maven打包插件maven-assembly-plugin两种方式结合使用,大家可以直接复制!

2、参考文献

  • 《【Springboot】打包 Jar 出现 java.lang.NoClassDefFoundError 的问题》
http://www.shuangfujiaoyu.com/news/46443.html

相关文章:

  • 汕头网站建设推广哪家好最好的小说网站排名
  • 上海购物网站建设搜索网站
  • 普洱做网站的报价推广公司属于什么公司
  • 专做餐饮的网站常见的营销手段
  • 小说网站开发教程上海快速排名优化
  • 苏州城乡建设局网站数据推广公司
  • 手机电影网站源码模板郑州百度seo关键词
  • 网络公司哪个效果好成都关键词优化平台
  • 用自家宽带做网站服务器公司网站的推广
  • 企业所得税怎么算小规模纳税人廊坊网站排名优化公司哪家好
  • 西安好玩的景点深圳网站优化推广
  • 制作app的网站哪个好买号链接
  • 台州市住房和城乡建设局网站兰州网络推广优化怎样
  • 做网站设计多少钱网络营销与市场营销的区别
  • 怎么做投资网站不违法怎么自己刷推广链接
  • 百度统计 网站速度诊断百度seo优化规则
  • 为什么企业要交税合肥百度关键词优化
  • 商城网站建设的注意事项网站软件免费下载
  • 网站建设开发报告成都网站建设seo
  • 做宣传手册的网站域名查询工具
  • 浙江网站建设方案软文广告经典案例短的
  • firework做网站教程搜索引擎推广文案
  • 扬州市建设局网站 竣工备案品牌营销策划有限公司
  • 在网上做国际快递淘宝网站做网站找哪个公司好
  • 如何做生鲜配送网站生意baidu百度首页官网
  • 在安庆哪里可以做公司网站域名访问网站怎么进入
  • 为什么做的网站打开自动缩放石家庄关键词快速排名
  • 手机号交易网站源码百度推广优化师是什么
  • 楼凤网站怎么做的杭州seo培训
  • 网站用户注册页面怎么做沈阳百度seo关键词优化排名