关于Maven的依赖配置。
比如我要用spring,struts2,mybatis,log4j,junit搭建一个web项目。我怎么知道我应该配置哪些依赖组件,特别是spring,struts,mybatis这样的框架,每一个都提供了大量的组件,难道我应该去库里查询,详细研究每个模块的功能,然后决定是否加入pom.xml依赖配置里么?
既然需要去maven中央库查,并且研究要使用的框架的组件,我为何不去框架的网站把Libs全部拷贝下来放到项目里,岂不是更简单?
网上很多代码的例子前面都给了一段pom.xml配置。本着很虚心的态度我学习了Maven。并且很认真的看完了《maven实战》。并搭建了私服。
我觉得maven的理想很完美,但是对于我,实在是有难度。或者说,maven本来就是一个鸡肋?
------解决方案--------------------Maven我项目里用到过,还是很强大的。虽然我不懂细节,但是项目有几百号人同时在开发,Java那块的东西基本都靠Maven。我觉得自学的话掌握个大概就可以了,具体还是要碰到问题然后解决才能真正提高。
以上个人建议,仅供参考。
------解决方案--------------------需要什么包就在pom.xml中配置,避免导入不必要的包,避免冲突。
关键是不用到处去下载jar包,自动下载
------解决方案--------------------自动下载,版本有更新也容易控制,一个仓库的包有多少个?你每一个工程都放一份吗?
------解决方案--------------------1. 想成你写程序,你需要去复用,那么你的pom只要第一次定义好了一些依赖,下次就直接用就行了,你再也不用去到处找包,导致有很多重复的但版本不一致的包
2. 一个项目一个lib包,里面很多都和其他项目重复的,对于硬盘来说,你会多出很多分拷贝,但是maven可以帮你只有一份在硬盘上,这样大家都可以用,这样也便于统一管理。
3. 如果是自己开发的jar包,要给其他人用,你只用放到中央仓库,其他人就直接建立依赖就可以了,没必要你每个人都发一份或者是每个人都自己去编译打包一次。
maven还有很多其他的插件可以用,对于项目来说资源管理是很方便的,而且插件也可以自己定义,来完成你各个goals的想加入的任务。
------解决方案--------------------Maven的重要性不言而喻,首先一点,或许我认为是最重要的一点,就是Maven实现了模块化编程,简单地说,就是每个人编写不同的部分,可以通过一个同级目录下的pom文件将这些模块一起编译。这对于多人同时开发同一项目尤其重要。
其二,就是jar包管理,一般来说,一个公司会搭建自己的私服,避免一个新人加入项目开发时还要自己去找jar包,或者考jar包,想想一个pom文件<dependencies></dependencies>就可以办的事,jar包直接在私服里下,何其简单,依赖问题就更好解决了,首先清楚依赖jar包引入的方式,必要时可以用exclusion标签解决冲突jar包。
其三,其他的项目或者模块可以轻松的被打包成jar包供其他项目或者模块使用。
------解决方案--------------------我对maven的理解很浅显,就是在mvnrepository.com上搜一下,加上相应的dependence,剩下的maven就帮你干了。
觉得开发项目到这里也就够用了,最多就是引用的两个项目公用jar包有冲突,一般加上强制引用高版本的dependence,问题大多能解决。
再就是大项目拆小项目,把各个子项目update到私服里,然后就可以持续集成,很方便。