因为是企业级开发,用maven管理难免会有一些混乱,这里更新一下我遇到并解决的实际项目中的问题,给大家做个简单参考。
1. 用Jetty来启动server的时候遇到诸如
Exception "Cannot find constructor WebSocketClient(XXX)" when starting Server with the latest code.
这是一个比较普遍的问题,引起的原因是有人改变了某些module中的Pom.xml文件,从改变了一些对应的dependency,造成了冲突。
比如你有A和B两个包,B依赖A来进行,结果两个都拥有websocket-XX.jar,且分别下载两个版本就会造成这种问题。
解决方案是统一pom,或者在运行目录即jetty的启动目录中删除其中的一个jar包,一般保留最新的即可。
比如这个例子中:remove: \jetty\lib\websocket\websocket-client-9.0.3.v20130506.jar再重启就可以了。
2. mvn clean install时遭遇了 org.glassfish 冲突问题,有很多表现,比如重复无法更新,比如无法下载。
这个引起的原因是用户目录下已经存在了相应的下载 (\.m2\repository\org)其实在mvn clean install时候大部分情况都可自行解决这类冲突,迄今为止我也只遇到过这么一例,解决方案自然是跑到目录下把 glassfish所有东西删掉就可以了。
也许是因为我切换了不同的目录有关?
3. 同样是 mvn clean install 无法完成,遇到架包下载失败之流。
一定是我人品太好才会遇到,由于企业级项目,我们会去某个Git上拿到配置好的settings.xml。这个是Maven自带的配置文件,一般位于conf中。
据我推测就是里面配置了专属代理造成的。当然别的伙伴没有此类问题,可以无缝切换自己的项目,所以跟电脑环境估计也有关系。
解决方案是找一个干净的settings.xml来替换。
以上就是我遇到过的maven一些问题,当然并非此类专家,只是做个了解,欢迎各位补充。