eclipse下打包ssm项目成war包丢上服务器遇到的问题以及解决方式

之前有打包过简单的小项目,打包过程中并没有碰到什么问题,最近想把毕设打包丢上腾讯云服务器,然后在maven项目打包的过程中就遇到了不少的问题!废话不多说,我先把问题给列出来:
这是我在右键项目->run->maven install之后出现的问题(并且打包过程中直接报错,提示打包失败,然后打开控制台出现了未找到xxx程序包,哪里出现了什么符号错误等等一大堆,由于我未来的及截图,这里就没有显示那张图片了)
在这里插入图片描述

既然问题出现了,那么就只能一个一个的去解决:
问题一:Cannot change version of project facet Dynamic Web Module to 2.3
这种问题之前也碰到过,但是奇怪的是我之前就解决了,没有想道maven update项目之后,这种问题又出现了,我表示很无奈啊!
打开web.xml文件:将版本改为2.5,我这里一直是2.5
在这里插入图片描述
在项目的.settiing目录下有这样一些文件:
在这里插入图片描述
org.eclipse.wst.common.project.facet.core.xml:
在这里插入图片描述

org.eclipse.jdt.core.prefs:
在这里插入图片描述
org.eclipse.wst.common.component:
在这里插入图片描述
将这些文件都昨晚更改后(其实我的文件内的版本号一直都相同),右键项目选择properties
在这里插入图片描述
做完这些更改之后刷新项目,选择maven->update project(不知道为什么我的这个错误还是一直存在)
问题二:One or more constraints have not been satisfied.
org.eclipse.wst.common.project.facet.core.xml:
在这里插入图片描述
在这里插入图片描述
最后,我以为这些问题都结局了,结果还是打包失败,在网上又各种百度
右键项目选择properties->builders 取消Validation,之后我再打包并没有显示失败,但是控制台还是存在未找到程序包以及符号错误

在这里插入图片描述
百度参考其他大佬的做法,在pom.xml中加入了一下配置:
在这里插入图片描述
配置到这一步,我有重新打包,结果是不会打包过程就终止了,但是控制台还是有输出为找程序包,于是乎,又得找问题所在,后面在pom.xml中发现junit的依赖中scope标签的值为test
在这里插入图片描述
百度发现:
原来,scope是用于配置打包的jar包配置,有几个可选参数
compile,test,system,provided等,默认是compile,所以,一般不配置scope也是可以在项目编译打包的时候把jar包打进去的。
compile
默认就是compile,什么都不配置也就是意味着compile。compile表示被依赖项目需要参与当前项目的编译,当然后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去。
test
scope为test表示依赖项目仅仅参与测试相关的工作,包括测试代码的编译,执行。比较典型的如junit。
runntime
runntime表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。与compile相比,跳过编译而已,说实话在终端的项目(非开源,企业内部系统)中,和compile区别不是很大。比较常见的如JSR×××的实现,对应的API jar是compile的,具体实现是runtime的,compile只需要知道接口就足够了。oracle jdbc驱动架包就是一个很好的例子,一般scope为runntime。另外runntime的依赖通常和optional搭配使用,optional为true。我可以用A实现,也可以用B实现。
provided
provided意味着打包的时候可以不用包进去,别的设施(Web Container)会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是在打包阶段做了exclude的动作。
system
从参与度来说,也provided相同,不过被依赖项不会从maven仓库抓,而是从本地文件系统拿,一定需要配合systemPath属性使用。
于是我干脆把scope删掉,最后刷新项目再maven->update project之后重新打包,终于成功了!
在这里插入图片描述
我的解决方式不一定可以给大家套用,如有什么不对地方,望大家能指出来!大家一起进步!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值