Maven大坑

很多人说现在开一个项目都用maven了.
呃, 说得maven多么好, 多么自动化.
其实这个免费软件虽然功能好, 但是设计bug一大堆好吗.
为什么愣是没人承认这件事?

坑一: 去哪找你要的jar包?

一般会告诉你第一次上一个国外的网站上去搜就行了.
于是就去了.
可用仓库网址:
http://search.maven.org/#browse
http://mvnrepository.com/
http://repository.sonatype.org/index.html#welcome
http://www.mvnbrowser.com/
视频教程里面用的第一个啊.
结果搜Junit出来几十个junit有木有.
视频里面那家伙说他靠经验来选哪一个.
太坑了. 要不就是他不行, 要不就是他有意坑人.
结果我上网一搜, 用了第二个网址, Junit出来只有三个项目, 每一个还带说明有木有!!! 还靠什么经验来选, 怒!

坑二: 解决jar包冲突的工具自己jar包冲突

都说Maven是用来解决jar包冲突的.
我太特地去搞了本『Maven实战』这本书来学习.
整本书下来就jar包版本冲突这件事情避开不讲.
我就不信你开发过程中没遇到过.
里面就讲了『因为某些原因』这样含糊的字眼教大家解决.

其实原因就是A.jar引用了C-1.0.jar, 但是后面B.jar要用的是C-2.0. 但是因为配置的时候A.jar写在前面, 它自动就将B.jar的C的依赖忽视掉了. 最简单的解决办法就是将B.jar的导入写在前面.
官方的做法就是在配置pom.xml中添加忽略语句. 这里就不写了.
据说这个问题gradle(另一个布署工具)有比较好的解决方式.

坑三: Maven默认用java1.5的版本

在idea中使用maven创建webapp, 默认是使用language level是1.5. 需要进入Project Structure ->Models -> source -> language level 改.

坑四: 与idea结合出现编译版本输出版本不一致问题

tomcat+springMVC+maven, 在Make的时候出现以下提示:

源发行版 1.8 需要目标发行版 1.8

解决方案:
在idea的setting -> java compiler -> Target bytecode version 改为 1.8

坑五: idea无法加载项目目录原型 显示 loading archetype list...

原因: jvm最大可用内存太小, 但是不知道和maven什么关系

解决:
img

你可能感兴趣的:(Maven大坑)