首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >maven-jar-plugin打包失败问题

maven-jar-plugin打包失败问题

作者头像
酒楼
发布2023-05-30 09:48:54
发布2023-05-30 09:48:54
1K0
举报
文章被收录于专栏:酒楼酒楼

1.问题描述

事情的最开始是因为在maven打包jar以后,用java -jar执行jar文件的时候找不到main,因此pom加了个这个

代码语言:javascript
复制
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <version>2.4</version>
  <configuration>
    <archive>
      <manifest>
        <mainClass>com.yuchengji.cn.WebApplication</mainClass>
      </manifest>
    </archive>
  </configuration>
</plugin>

加了这个以后在我的笔记本上可以打包成功,但是在我的台式电脑上就不行了

2.问题解决过程

首先,我确认了一下笔记本和电脑上的java版本和maven版本,都是jdk1.8和maven3.9.1,因此排除了开发环境的版本问题

然后,代码都是从git库中更新的最新代码,代码是没有不一样的,也不是代码的问题。

接着,我注意到报错信息里2.4的字样,怀疑maven-jar-plugin的2.4版本是不是有问题,然后我换成了3.2.0,打包成功!

3.问题后续

那问题就来了,为什么我的笔记本上能打包成功?

BOMB!你猜怎么着,经过我细细的考察,其实pom里面根本就不用maven-jar-plugin,这个是打包spring项目的,springboot项目用的是spring-boot-maven-plugin,两者的关系:spring-boot-maven-plugin是在maven-jar-plugin的基础上做的,是maven-jar-plugin的儿子。

而之前的找不到main,其实是应该在spring-boot-maven-plugin中添加repackage,加了这个,springboot项目所依赖的那些jar包会在项目构建的时候也打包进最后生成的jar里,要不然的话,在服务器上使用java -jar 来运行项目的时候得把本项目依赖的其他jar包也放在这个命令行的后面!

还有在构建的过程中很恶心的一点是springboot的版本,要和java版本匹配,我用的是jdk1.8,与之匹配的版本是2.6.6

最后,就是pom文件的格式问题,一定要好好检查,不要随便使用空格,要用tab,一个格式不对,就会编译失败,格式化有时候也不好用,要自己去确认。

4.问题总结

这个故事告诉我们,在pom文件中添加东西一定要谨慎,要先了解好新添加的依赖与自己已经有的依赖是否重复,是什么关系,是否冲突,pom文件一定要干净,每个依赖都是必须,可溯源的。要不然就很酸爽了。

还有,遇到一个问题,在网上找原因的时候,不能直接把解决方式套过来用,一个不小心,之前的问题没解决,有生出了其他问题,构建不了了…

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-05-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.问题描述
  • 2.问题解决过程
  • 3.问题后续
  • 4.问题总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档