Myeclipse maven插件中pom.xml的默认依赖有意义吗?

发布于 2021-11-30 05:03:51 字数 679 浏览 847 评论 1

如图所示,pom.xml默认引入这一大堆东西。内含一个javassist的jar(它作为osgi框架的依赖包被默认引入,这里因为引用列表太长,没截出来)。

当我add struts2的依赖后发现,项目跑不起来,报错。控制台告诉我缺javassist,当时我就不理解了,因为maven的引用列表告诉我它已经引用了。

实验发现,Maven这些默认引入的jar都不会被拷贝到运行的WEB-INF/lib下,所以,我要使用struts2,让lib下存在javassist.jar,得先去除默认的javassist依赖,再手动给pom.xml添加javassist依赖才行。

最后问题解决,控制台也不再提示我缺包了。

但我依然很不明白,maven既然不帮我把jar拷贝到执行环境中,那么给我默认引入这么多jar搞毛啊?

J2EE的依赖我还能理解,因为tomcat容器已经有相应的J2EE接口实现,再引入的话会造成jar冲突。但另外的一些jar如javassist没有冲突问题,但如果真要用到,我还得手动去除依赖再手动引入依赖,总之用户体验很糟很糟。

所以我不明白,这些maven默认引入依赖有什么存在的意义?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

孤檠 2021-11-30 15:33:04

首先可以确定的是,这些不是Maven POM的默认引入, 笔者从事maven 多年, 都是需要用什么包 都是自己在POM里面添加的,唯一可能的是会吧JDK的包引入进来,当然了 这也是可以理解的,maven是运行在jdk之上的,楼主的这个情况我觉得是IDE 本身的问题,可能是MyEclipse的maven插件 有些特别的配置,或者是有附加的类库等。

建议楼主 通过命令行窗口进行打包构建这是最干净可靠的

比如: mvn clean compile war:war

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文