2007-05-24

大家一起来谈谈Maven吧

关键字: maven
个人接触Maven也有很长的一段时间了,最近终于经不起maven的诱惑下定决定把公司的基础构件库整体迁移到maven构建环境中来(公司一直采用微软的VSS做版本控制,非常不便于重构,而且管理的项目太多,速度实在是不堪忍受),感觉有以下几点好处:
1、对类库的集中管理及传递依赖,只需要将POM配置文件进行版本控制就可以了,版本库中的项目体积减少了80%以上,异常地清爽;
2、项目配置文件的重用度比较高,而且支持继承;
3、对整个项目开发生命周期的完整支持,从头到尾只需要几个简单的命令就可以快速地遍历整个开发周期,减轻了配置管理的工作量;
4、自动化文档、站点报告生成发布以及丰富的工具扩展和集成,这点尤其重要;

另外在团队协作开发的推广过程中也遇到了一些问题,其中最头痛的问题就是每个开发人员必须学习Maven,尽管只需要了解简单的mvn eclipse:eclipse命令,另外就是对Web项目的支持力度不够,目前公司大部分开发人员都是使用MyEclipse来构建Web项目,如果要将Maven自动生成的ClassPath和MyEclipse的项目配置文件整合起来使用,目前只能通过手工编辑ClassPath的方式进行,这点感到比较郁闷,也是开发人员抵触Maven的重要原因。

总体来说,maven还是一个值得花时间学习的配置管理工具,希望能听到大家对于maven的看法以及使用经验和心得。
评论
javachs 2007-06-21
如果这个东西好用,我还是很有兴趣的,我一直不习惯ant的配置格式,太别扭了.
pupi 2007-06-19
一根筷子 写道
项目中用了一下maven2,莫名其妙的把jboss包给下来了,不知道哪个引用到了,
还有怎么把maven2下的包排序阿,默认的是不排序,很不爽


应该是你显示的设置了对某个jar(在maven中叫artifact)的依赖,但是该jar又依赖那个jboss的包。
诺铁 2007-06-14
下载一个proximity http://proximity.abstracthorizon.org/
看看它的文档。
在内网找个服务器装上它,找个能上网的机器把你要用的jar下载下来,然后部署到这个maven代理服务器上,然后配置开发人员机器上的maven,让他们访问代理服务器就可以了。具体的看maven2的文档里面都有写。
boogie 2007-06-14
maven-proxy能在具体谈谈吗?
在内网怎么用maven?
letle 2007-06-14
个人仅仅用maven管理类库,至于项目配置方面使用CVS/WinCVS。
一根筷子 2007-05-31
项目中用了一下maven2,莫名其妙的把jboss包给下来了,不知道哪个引用到了,
还有怎么把maven2下的包排序阿,默认的是不排序,很不爽
诺铁 2007-05-25
这种同类库不同版本的问题其实不是maven的问题。而且更加凸现出依赖管理的重要性。
Sunteya 2007-05-25
maven 现在最大的问题是 各种类库对于jar包依赖的写法 可能不同
比如 hibernate 他会依赖 cglib 而 cglib 又会依赖 asm 1.5
但 spring 会依赖 cglib-nodep, spring 2.0 又依赖了 asm 2

这个就造成了 项目会同时 依赖 asm 1.5 和 2.0 然后就会有写莫名奇妙的错误了。


至于 myeclipse么,打包发布什么的maven 都搞定了,运行么eclipse内用 jetty 或者 resin。语法提示么 用WTP也就好了。感觉 myeclipse 没有什么必要在用了。
dengyin2000 2007-05-25
wtp像是myeclipse的一个子集。 myeclipse越搞越大 现在简直不像话了。 我已经用过3.8版的 现在就飙到5。5了
诺铁 2007-05-25
lee5593 写道
dengyin2000 写道
maven 对wtp有支持。 把myeclipse 人掉吧。

maven eclipse:eclipse -Dwtpversion=1.0

公司使用MyEclipse的人太多了,习惯的力量是可怕的

这句正解。
我也正在使用maven,依赖管理实在是太有吸引力。在公司服务器上装个proxy,管理多个相关的项目很好。
不过用了不久,经验缺乏,还有不少问题,最好有个专门的小版来讨论讨论。
lee5593 2007-05-25
dengyin2000 写道
maven 对wtp有支持。 把myeclipse 人掉吧。

maven eclipse:eclipse -Dwtpversion=1.0

公司使用MyEclipse的人太多了,习惯的力量是可怕的
dengyin2000 2007-05-25
maven 对wtp有支持。 把myeclipse 人掉吧。

maven eclipse:eclipse -Dwtpversion=1.0
lordhong 2007-05-25
楼上大哥台湾同胞?
DraculaCwg 2007-05-25
誤post,恕刪
DraculaCwg 2007-05-25
lee5593 写道
Apache官方网站上关于远程部署提及了5种方案,分别是FILE、SSH2、SFTP、Extenal SSH和FTP,用的比较多的是SSH方式,可惜我还没配置成功


後來我都直接在本機用,採file的方式

還有中文環境下,linux會比windows來的正常一些,因為linux都是utf-8的
在windows下,產出的文件編碼都不是很正常,雖然多都plugins都可以設定encoding
但有的設了,會影響另一個,所以,還是把maven server架在linux會比較正常
在順道加上一個internal repository,這樣就很好用了
因為很多jar檔不見得會被deploy到maven官方的repository
而且很多jar檔都沒source跟javadoc,這大概是很maven比較不爽的地方
lee5593 2007-05-25
rockmaple 写道
自己一个人开发用Maven也很爽,mvn jetty:run一下就可以看结果了,就是网速慢的话用maven太郁闷

网速慢的话,第一次下载是比较慢,不过也只需要郁闷一回,设个maven-proxy,然后将更新策略设置一下,速度会快很多,具体设置如下:
################ SNAPSHOT HANDLING
#If you want the proxy to look for newer snapshots, set to true
snapshot.update=false

################ M2 METADATA HANDLING
#If you want the proxy to prevent looking for newer metadata, set to false (default is true)
metadata.update=false

################ M2 POM HANDLING
#If you want the proxy to look for newer POMs, set to true (default is false)
pom.update=false
rockmaple 2007-05-25
自己一个人开发用Maven也很爽,mvn jetty:run一下就可以看结果了,就是网速慢的话用maven太郁闷
lordhong 2007-05-25
SSH... 头疼...
lee5593 2007-05-24
Apache官方网站上关于远程部署提及了5种方案,分别是FILE、SSH2、SFTP、Extenal SSH和FTP,用的比较多的是SSH方式,可惜我还没配置成功
lordhong 2007-05-24
maven仅管理dependency这点就很值得推荐.
mvn eclipse:eclipse/idea:idea, 还有doc, site等等, 自动管理项目确实感觉很爽.

:) 目前想自动remote deployment, 是不是通过ant来实现?
请有经验的大牛不吝赐教...........
lee5593
搜索本博客
最近加入圈子
存档
最新评论