开发者社区> 问答> 正文

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

如图所示,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默认引入依赖有什么存在的意义?

展开
收起
爱吃鱼的程序员 2020-06-12 15:22:51 512 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

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

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

    比如:mvncleancompilewar:war

    2020-06-12 15:23:07
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
使用Spring.Initializr定制工程脚手架 立即下载
陈曦:使用Spring.Initializr定制工程脚手架 立即下载
低代码开发师(初级)实战教程 立即下载

相关镜像