`
lee5593
  • 浏览: 57710 次
社区版块
存档分类
最新评论

大家一起来谈谈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的看法以及使用经验和心得。
分享到:
评论
20 楼 javachs 2007-06-21  
如果这个东西好用,我还是很有兴趣的,我一直不习惯ant的配置格式,太别扭了.
19 楼 pupi 2007-06-19  
一根筷子 写道
项目中用了一下maven2,莫名其妙的把jboss包给下来了,不知道哪个引用到了,
还有怎么把maven2下的包排序阿,默认的是不排序,很不爽


应该是你显示的设置了对某个jar(在maven中叫artifact)的依赖,但是该jar又依赖那个jboss的包。
18 楼 诺铁 2007-06-14  
下载一个proximity http://proximity.abstracthorizon.org/
看看它的文档。
在内网找个服务器装上它,找个能上网的机器把你要用的jar下载下来,然后部署到这个maven代理服务器上,然后配置开发人员机器上的maven,让他们访问代理服务器就可以了。具体的看maven2的文档里面都有写。
17 楼 boogie 2007-06-14  
maven-proxy能在具体谈谈吗?
在内网怎么用maven?
16 楼 letle 2007-06-14  
个人仅仅用maven管理类库,至于项目配置方面使用CVS/WinCVS。
15 楼 一根筷子 2007-05-31  
项目中用了一下maven2,莫名其妙的把jboss包给下来了,不知道哪个引用到了,
还有怎么把maven2下的包排序阿,默认的是不排序,很不爽
14 楼 诺铁 2007-05-25  
这种同类库不同版本的问题其实不是maven的问题。而且更加凸现出依赖管理的重要性。
13 楼 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 没有什么必要在用了。
12 楼 dengyin2000 2007-05-25  
wtp像是myeclipse的一个子集。 myeclipse越搞越大  现在简直不像话了。 我已经用过3.8版的  现在就飙到5。5了
11 楼 诺铁 2007-05-25  
lee5593 写道
dengyin2000 写道
maven 对wtp有支持。 把myeclipse 人掉吧。

maven eclipse:eclipse -Dwtpversion=1.0

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

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

maven eclipse:eclipse -Dwtpversion=1.0

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

maven eclipse:eclipse -Dwtpversion=1.0
8 楼 lordhong 2007-05-25  
楼上大哥台湾同胞?
7 楼 DraculaCwg 2007-05-25  
誤post,恕刪
6 楼 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比較不爽的地方
5 楼 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
4 楼 rockmaple 2007-05-25  
自己一个人开发用Maven也很爽,mvn jetty:run一下就可以看结果了,就是网速慢的话用maven太郁闷
3 楼 lordhong 2007-05-25  
SSH... 头疼...
2 楼 lee5593 2007-05-24  
Apache官方网站上关于远程部署提及了5种方案,分别是FILE、SSH2、SFTP、Extenal SSH和FTP,用的比较多的是SSH方式,可惜我还没配置成功
1 楼 lordhong 2007-05-24  
maven仅管理dependency这点就很值得推荐.
mvn eclipse:eclipse/idea:idea, 还有doc, site等等, 自动管理项目确实感觉很爽.

:) 目前想自动remote deployment, 是不是通过ant来实现?
请有经验的大牛不吝赐教...........

相关推荐

    Spring in Action 使用Maven 构建Spring 工程

    总结起来,使用Maven构建Spring工程是一种高效且规范的方法。通过Maven,我们可以轻松管理Spring框架和其他库的依赖,实现Spring的依赖注入,同时借助其强大的生命周期管理和插件功能,简化项目的构建和部署流程。...

    SpringMVC+Maven实现用户简单登录

    接下来,我们谈谈Maven的使用。在项目根目录下,`pom.xml`文件定义了项目的依赖关系,如Spring MVC、Spring Core、Spring Web以及其他的库。Maven会自动下载这些依赖,帮助我们构建和运行项目。例如,你可能会看到...

    使用maven将Java程序打包成exe文件并制作成Windows系统服务(三)之springboot+nssm生成系统服务

    接着,我们来谈谈Maven。Maven是Java项目管理工具,它管理项目的构建、依赖关系和文档生成。在本案例中,我们将利用Maven的`maven-assembly-plugin`或`maven-shade-plugin`来将Java应用打包成可执行的JAR文件,然后...

    citrus-test-all-3.0.13.zip

    接下来,我们来谈谈 "license-maven-plugin"。Maven 是一个广泛应用的项目管理和综合工具,它通过管理项目的构建、报告和文档,帮助开发者有效地组织项目。许可证插件则是 Maven 生态系统中的一个重要组成部分,它的...

    快速生生成sql语句,反编译.class文件,java代码生成……

    通过XML或注解配置,MyBatis能够将SQL语句与Java代码紧密地结合起来,极大地简化了SQL的编写。而Hibernate作为ORM(对象关系映射)框架,可以自动生成SQL,使得开发者无需直接与数据库交互,提高了开发效率。 接...

    activemq-store-journal-2.1.jar.zip

    总结起来,"activemq-store-journal-2.1.jar" 是ActiveMQ中用于消息存储和日志记录的关键组件,它通过高效的数据持久化策略保证了消息的可靠传输。理解并掌握这个组件的使用,对于优化ActiveMQ的性能和稳定性有着至...

    rar压缩文件解压junjar包与commons-logging依赖包

    现在,将这两个库结合起来,你可以在Java程序中实现rar文件的解压并记录解压过程的日志。首先,你需要引入junrar和commons-logging的依赖,通常通过Maven或Gradle等构建工具完成。然后,使用junrar API打开RAR文件,...

    Java调用SMTP命令发邮件,实现抄送,附件--无需邮件搭建邮件服务器直接发送

    你可以通过Maven或Gradle等构建工具将它们添加到项目依赖中。 SMTP是互联网上用于发送电子邮件的标准协议。JavaMail API通过与SMTP服务器交互,实现了邮件的发送。在使用SMTP发送邮件时,我们需要配置SMTP服务器的...

    oracle19c最新驱动.zip

    Oracle 19c是Oracle数据库的一个重要版本,它提供了许多增强功能和性能优化。而"ojdbc10.jar"是Oracle公司为Java应用程序提供与Oracle数据库连接的JDBC驱动程序。在本文中,我们将深入探讨Oracle 19c的特性以及ojdbc...

    开发者

    总结起来,作为一名Java开发者,你需要掌握Java语言的基本概念和语法,熟悉常用的开发工具,了解面向对象编程和异常处理,掌握版本控制和构建工具,理解企业级开发框架,以及具备一定的移动端或Web开发经验。...

    JavaObjetosPart2:Carpetas divididas por Clases和Pdf´s

    总结起来,"JavaObjetosPart2:Carpetas divididas por Clases和Pdf´s"强调了Java项目中的代码组织原则和资源管理。通过合理划分类文件的目录结构,我们可以提高代码的可读性和可维护性;利用特定库处理PDF文档,...

    javaweb配置jsp路径映射操作

    2. **映射Servlet**:接下来,需要创建一个`<servlet-mapping>`元素,它将Servlet名称与用户可以通过浏览器访问的URL模式关联起来。例如: ```xml <servlet-name>GoToCloudstore4Bridge <url-pattern>/...

    Java测试

    在Java中,我们可以使用TestNG或Apache Maven的Surefire插件进行集成测试。集成测试确保了各个组件组合在一起时能正常工作,减少了后期的调试工作。 系统测试是针对整个系统进行的,目的是验证系统是否满足业务需求...

    SeleniumCoreJava

    接下来,我们谈谈Core Java在Selenium中的作用。Java作为Selenium的主要编程语言,其扎实的语法基础和面向对象特性使得编写自动化测试脚本更为灵活和强大。Core Java涵盖了类、对象、数据类型、异常处理、集合框架等...

Global site tag (gtag.js) - Google Analytics