
Maven
文章平均质量分 85
iteye_11035
这个作者很懒,什么都没留下…
展开
-
我的书《Maven实战》
我本来已经决定停止更新该博客了,但是为了推广下我的新书《Maven实战》,在此破例一下。该书包含了我不少的经验总结和心血劳动,希望能让更多的人了解。 简介你是否早已厌倦了日复一日的手工构建工作?你是否对各个项目风格迥异的构建系统感到恐惧?Maven——这一Java社区事实标准的项目管理工具,能帮你从琐碎的手工劳动中解脱出来,帮你规范整个组织的构建系统。不仅如此,它还有依赖管理、自...2010-11-12 13:09:29 · 921 阅读 · 3 评论 -
《Maven权威指南》完整发布,带官方PDF
2010/04/29更新:我已经在个人网站提供了PDF下载 http://www.juvenxu.com/mvn-def-guide/ 最近抽了两天时间,把该书的序啊,前言啊,附录啊,零零碎碎的部分都翻译完毕了,也算是一次完整的发布,我称之为Beta 0.2。中文版不可能与英文版完全同步,于是中文版有自己的版本号,和英文版的Beta 0.2不尽一致。 目前最新的英文版本...2009-07-06 00:45:31 · 978 阅读 · 0 评论 -
Nexus Indexer 2.0:增量下载
原文:http://www.sonatype.com/people/2009/05/nexus-indexer-20-incremental-downloading/ Nexus Indexer已经变得十分流行,它已经成为了索引Maven仓库的事实标准(包括大个子,中央仓库)。随着仓库变得越来越大,索引的大小也随之增长。从最初几百kb的文件,渐渐得增长至20-30mb的文件。大...2009-05-14 16:33:02 · 256 阅读 · 0 评论 -
Maven最佳实践:版本管理
什么是版本管理首先,这里说的版本管理(version management)不是指版本控制(version control),但是本文假设你拥有基本的版本控制的知识,了解subversion的基本用法。版本管理中说得版本是指构件(artifact)的版本,而非源码的版本(如subversion中常见的rXXX,或者git中一次提交都有个sha1的commit号)。比如我有一个项目,其art...2009-04-29 00:04:33 · 1907 阅读 · 0 评论 -
Maven仓库的布局
注:本文节选自我正在编写的《Maven实战》任何一个构件都有其唯一的坐标,根据这个坐标可以定义其在仓库中的唯一存储路径,这便是Maven的仓库布局方式。例如log4j:log4j:1.2.15这一依赖,其对应的仓库路径为log4j/log4j/1.2.15/log4j-1.2.15.jar,细心的读者可以观察到,该路径与坐标的大致对应关系为groupId/artifactId/vers...2009-12-14 08:54:11 · 221 阅读 · 0 评论 -
Maven3初窥
Maven3的开发已经完成大半,本周末将发布alpha-3(Twitter @jvanzyl),而Nexus已经开始使用Maven3进行构建,于是我也开始使用Maven3。 从http://svn.apache.org/repos/asf/maven/maven-3/trunk签出最新的maven3代码,然后使用maven2进行build,build完毕之后,便能得到Maven安装文件...2009-11-10 16:28:34 · 169 阅读 · 0 评论 -
Nexus 1.4.0 发布
新完成的用户故事:[NEXUS-463] - 从搜索结果下载构件[NEXUS-840] - SMTP服务器配置测试界面[NEXUS-982] - 添加一个“新部署的发布版构件”RSS源[NEXUS-1504] - 仓库信息面板[NEXUS-1510] - 集成自动问题报告[NEXUS-1551] - ...2009-10-29 17:22:19 · 150 阅读 · 0 评论 -
"Maven: The Definitive Guide"在国外出版了
"Maven: The Definitive Guide"一书的商业模式十分有趣,首先你可以在线免费阅读或者下载PDF,地址为:http://www.sonatype.com/book。而现在,它又推出了纸质的书本,你可以在Amazon上购买。还有一点有趣的地方是,本书的所有版税全部捐献出来用来植树了。因此,这本书相当环保,不是为了盈利的,主要是为了推广Maven。 关于本书的内容,绝对是...2008-10-08 12:52:48 · 248 阅读 · 0 评论 -
持续集成实践和Maven核心介绍
之前在公司做的一个培训,主题是介绍持续集成(CI)和Maven的核心概念,这里分享给大家。 大概内容为:CI实践逐条详解:维护单独的SVN仓库,自动化构建,频繁提交……Maven核心介绍:一组通用的用户接口,一组预定义的约定配置,一个POM……CI阶段详解:持续编译,持续测试,持续数据库集成…… 本来想写把Hudson的介绍也加进来,无奈经验和时间的有限,暂时搁置了,见谅,不过看了这...2008-10-06 08:57:35 · 124 阅读 · 0 评论 -
现实中的Maven项目
《Maven权威指南》第六章. 一个多模块项目,以及第七章. 多模块企业级项目都已翻译完毕。 一个现实生活中的Maven项目只有一个POM文件,那是不现实的。典型的项目会和数据库交互,和Web Service交互,有自己的业务逻辑,暴露Web Service,有命令行应用程序,有Web应用程序……这个时候,必须分一下模块,松散耦合,清晰关联,增加重用等等好处不用多说。这两章内容,就是介绍怎...2008-09-16 11:32:14 · 115 阅读 · 0 评论 -
解决Maven中OutOfMemory错误
当Maven项目很大,或者你运行诸如 mvn site 这样的命令的时候,maven运行需要很大的内存,在默认配置下,就可能遇到java的堆溢出。如: [INFO] Building jar:/home/dl9pf/svn/mindquarry/mindquarry-jcr/mindquarry-jcr-changes/target/mindquarry-migration-with-dep...2008-09-10 16:43:21 · 1178 阅读 · 0 评论 -
Nexus —— 强大的仓库管理器(相关章节译毕)
前面的文章我大概介绍了什么是Maven仓库管理器,以及仓库管理器的重要性。现在,介绍一下Sonatype推出的强大仓库管理器产品 —— Nexus。 简要罗列一下Nexus的特性:代理远程仓库。配置Nexus代理中央仓库,其它任何公开的Maven仓库,将你组织内部的Maven配置指向Nexus,这样所有构件都将从Nexus下载,如果Nexus没有你要的构件,它会自动先去外部仓库下载到本地,...2008-09-05 09:50:58 · 205 阅读 · 0 评论 -
为什么要用Maven?
这里整理了一段MSN群中网友Arthas的精彩讲解: 来自群聊天记录Alex_Zhang 说: 我觉得maven比起ant来说还是差距很大,至少在灵活性上。maven非要靠那些插件Juven 说: 是的,如果自定义程度非常高,ant更灵活Alex_Zhang 说 那为什么还要用maven?是否因为它有自动生成站点,自动下载依赖包,版本管理等功能?难道就这些吗?中央库...2008-10-09 17:17:33 · 355 阅读 · 0 评论 -
“第九章:项目对象模型 ”发布
最近开始新工作,较忙,翻译有点慢了,大家见谅。Sonatype的网站上周末在中国连接速度有点问题,不过是暂时性的,现在恢复了。 转入正题,第九章:项目对象模型,也是本书第二部分“Maven参考”的第一章,现已完成,我自己做过简单的review,肯定还有问题,比如说错别字,读者若有时间,在我们的讨论组:http://groups.google.com/留言,将不甚感激。 本章内容很丰富,...2008-10-28 17:46:02 · 137 阅读 · 0 评论 -
archtype:generate出错?
我们常常会使用mvn archetype:generate来创建一个项目的骨架,这本身是Maven一个非常有趣的功能,你甚至可以定义自己的项目骨架,但是,我听到不止一次有用户说,这个命令没法用,不妨试试: GMT +8:00,2009年10月12日零点整,我运行mvn archetype:generate,得到的是一堆出错信息: [INFO] ----------------...2009-10-12 00:10:12 · 292 阅读 · 0 评论 -
你最常用的构建和发布管理工具是什么?
最近Eclipse社区进行了一项调查,关注社区如何使用Eclipse和其它开源软件,目前调查的结果已经发布,详细的结果涵盖了IDE,操作系统,版本控制工具等等,具体可以查看这个链接: http://www.eclipse.org/org/press-release/20090527_survey09.php 作为Maven的忠实用户,我自然比较关注构建工具这一块,这是我看到的报...2009-09-13 15:03:59 · 246 阅读 · 0 评论 -
策划编写《Maven实战》——初步目录
2010-08-27更新关注本书请访问我为此专门创建的页面:http://www.juvenxu.com/mvn-in-action/ 由于《Maven权威指南》由于一些原因暂时无法在国内出版,我决心使用业余时间编写一本《Maven实战》,以方便在国内更好的推广Maven技术。为了使本书能更好的满足国内Maven用户的需要,我希望能在编写过程中得到大家...2009-09-09 03:42:24 · 164 阅读 · 0 评论 -
m2eclipse 0.10.0发布
本文译自 http://www.sonatype.com/people/2010/02/now-available-m2eclipse-0-10-0/ 这是一年多来m2eclipse的第一个生产适用版本,这已经是最快的速度了。在该版本中,你会看到我们分离了更新站点。现在有一个核心更新站点,和另外一个包含可选组件的额外更新站点。要了解详细的安装信息,请阅读m2eclipse站点上...2010-02-22 17:34:34 · 209 阅读 · 0 评论 -
使用仓库管理器——Sonatype Nexus的九大理由
(译自:Nine Reasons to Use a Repository Manager: Sonatype Nexus) 目前有很多组织使用了一些工具依赖于Maven仓库,但他们并没有采用一个仓库管理器,对于这一点我十分惊讶。可能没人提出来这一点,没人站出来告诉别人使用一个仓库管理器能带来什么好处。我经常能从很多不使用Maven仓库管理器的组织那里听到这样的字眼:“我们不需要那么...2008-12-02 17:04:01 · 767 阅读 · 0 评论 -
“第十一章 构建Profile”发布
书继续翻译着... 隔几天做一点,就这么着,离完成距离也不远了。 Profile这个单词不知道如何翻译,由于在Maven语境中的特殊性,字典上的解释似乎都不适用,那我就干脆保留英文原样了,毕竟在使用maven profile的时候我们不能在XML文件中写中文TAG。 介绍下这一章的内容: 构建可移植性。有些项目只能由某人在某台特定的机器上运行才能build成功,而有些项目svn co...2008-11-27 00:02:07 · 119 阅读 · 0 评论 -
Nexus WAR 及 索引浏览
作为目前最强大的Maven仓库管理器(Repository Manager),Nexus每天都在进步,由于它是开源的,任何人都可以随时帮助它改进。这里是Nexus相关的邮件列表地址:http://nexus.sonatype.org/dev/mailing-lists.html 。 这里介绍下几个Nexus 1.1 及 1.1.1 中引入和完善的两个功能: Nexus WAR 在...2008-11-21 16:23:09 · 279 阅读 · 0 评论 -
按需构建多模块,玩转Maven反应堆
在多模块Maven项目中,反应堆(Reactor)是一个包含了所有需要构建模块的抽象概念,对于Maven用户来说,主要关心的是两点: 哪些模块会被包含到反应堆中?反应堆中所有模块的构建顺序是什么? 例如有这样的一个多模块项目: plexus-security包含了8个子模块,其中security-realms还包括了更进一层的两个子模块。运行mvn c...原创 2010-01-07 19:57:53 · 623 阅读 · 0 评论 -
搜索Maven仓库
使用Maven进行开发的时候,比较常见的一个问题就是如何寻找我要的依赖,比如说,我想要使用activeMQ,可是我不知道groupId,artifactId,和合适的version。怎么办呢?本文介绍几个提供maven仓库搜索服务的站点。 1. http://repository.sonatype.org/index.html该服务器是由Sonatype提供的,Sonatype是由...2008-11-17 21:31:43 · 674 阅读 · 0 评论 -
“第十章. 构建生命周期” 发布
之前写过篇文章:Maven生命周期详解。说是详解,也就寥寥几百字,怎可能多详细?现在好了,Maven权威指南中有一章专门介绍生命周期,现在已经翻译完毕,请看:http://www.sonatype.com/book/reference_zh/lifecycle.html。 大致内容如下:什么是生命周期解释三种生命周期 clean, default, site插件目标(plugin ...2008-11-06 23:20:58 · 130 阅读 · 0 评论 -
Maven疑难排解
首先大概翻译一段来自sonatype blog的博文: -~-~—~-~-~-~-~如何诊断在Maven构建过程中碰到的问题?可以看一下这些手段: 1. 你正运行什么版本的Maven?如果不是Maven 2.0.9或以上,你需要升级。 Maven 2.0.9是第一个设置了核心插件版本的Maven版本。为什么这很重要呢?因为在2.0.9之前,Maven会自动下载核心插件的最新版本,比如...2008-11-03 23:50:45 · 112 阅读 · 0 评论 -
文明使用中央Maven仓库
http://repo1.maven.org/maven2/ 是中央Maven仓库,里面包含了绝大多数的开源构件,及源码,作者信息,SCM信息,等等。每个月这里大概会接受全世界java程序员1亿次的点击,因此,它对全世界java开发者的贡献,是不言而喻的。 但如此大的访问量无疑存在潜在的危险,Maven中央仓库是开放的,任何人可以通过任何方式去那里下载资源,但它也有自己的承受能力,如果连接过多...2008-09-04 09:35:20 · 107 阅读 · 0 评论 -
Maven中的插件和生命周期
Maven的核心是它的生命周期,生命周期什么都不做,因此Maven的安装文件很小。所有的事情都交给了插件来完成。比如说,Maven的default生命周期中定义了一个compile阶段,这个定义本身什么都不会做,真正编译代码的是Compiler插件,它的groupId是org.apache.maven.plugins,artifactId是maven-compiler-plugin。 如果你理...2008-08-26 16:43:54 · 126 阅读 · 0 评论 -
Maven仓库管理器的重要性
今天在maven主题的irc中得知,又一个中国的ip被中央Maven仓库封了。原因我猜到了大半,但还是忍不住问一下,回答是: 他们消耗了很大的中央仓库带宽,会使之变慢。因此这些人不是良好的Maven公民。 我也曾经在个人笔记本上直接使用中央Maven仓库,第一次build项目下载了很多东西,可这样并没有被封,说明中央仓库不是很苛刻的,那么是什么样的下载量导致中央仓库的管理员受不了呢?我猜...2008-08-20 15:18:23 · 195 阅读 · 0 评论 -
持续集成,Hudson对Maven2的强大支持
持续集成离不开功能强大而又成熟的工具。其中最重要的三个工具是:构建工具,源码控制系统,持续集成服务器。持续集成中三者基本的合作流程是:持续集成服务器从源码控制系统中签出最新的代码。持续集成服务器是用构建工具进行构建。持续集成服务器发布构建结果。由此可见这里持续构建服务器起主导作用,因此该工具的优劣直接关系到工作量及工作效果。Maven2是很好的构建工具,除此之外Ant的用户群...2008-06-23 09:48:50 · 202 阅读 · 0 评论 -
使用Profile和Resources Filter隔离测试环境
Maven能够帮我们很好的管理测试,我们可以在 src/test/java 和 src/test/resources 下面使用JUnit或者TestNG 编写单元测试和集成测试,然后在命令行运行 mvn test ,测试就会自动运行,同时产生详细的测试报告。对只有一两个人的项目来说,不会碰到本文将提到的问题。 我们考虑以下场景(这也是我在实际项目中碰到的问题):有一个大概30人团队的项目...2008-06-22 12:46:56 · 208 阅读 · 0 评论 -
Maven中文专业博客开通
我相信,开源如果没有良好的文档支持,创意再好,技术再先进的项目,也不会获得很大的成功。80后的中国人重理轻文,这种现象在软件行业也普遍存在。最直接的后果是,很多很优秀的项目,由于缺乏良好的文档支持,无人问津。本博客的宗旨在于给Maven的中国用户多一些的文档支持,并且尽我之能力提供相关咨询解答。这里还有一个好消息,Maven: The Definitive Guide 一书将被陆续译成中文,...2008-06-22 11:08:07 · 108 阅读 · 0 评论 -
Maven最佳实践:管理依赖
"If I have seen further it is by standing on the shoulders of Giants" —— Isaac Newton (1642-1727) 有人认为Maven是一个依赖管理工具,当然这种想法是错误的(确切的说Maven是一个项目管理工具,贯穿了整个项目生命周期,编译,测试,打包,发布...),但Maven给人造成这种错误的印象也是有原因的...2009-02-23 16:50:12 · 195 阅读 · 0 评论 -
m2e:为Eclipse引入Maven(下)
译自:http://www.sonatype.com/about/press/20090122-JDJm2eBringingMavenToEclipseMaven长Eclipse所短,反之亦然by Jason Van Zyl M2e起步不要轻易相信我的话;根据我们创建的软件来判断m2e项目。虽然为了让Maven和Eclipse项目完美结合,还有一些集成工作要做...2009-02-04 16:19:22 · 189 阅读 · 0 评论 -
m2e:为Eclipse引入Maven(上)
译自:http://www.sonatype.com/about/press/20090122-JDJm2eBringingMavenToEclipseMaven长Eclipse所短,反之亦然by Jason Van Zyl这里我要介绍m2e项目,它联结了Maven的能力和Eclipse的可用性。本文中,我会讲述我们对于m2e项目的计划:目前它是什么,将来...2009-02-04 14:10:11 · 272 阅读 · 0 评论 -
Maven持续集成最佳实践
译自:http://blogs.sonatype.com/people/2009/01/maven-continuous-integration-best-practices/ 持续集成是你在开发过程中经常会用到的一个最佳实践,它是高效软件开发生命周期(SLDC)至关重要的一部分。如果还没使用这一实践,那么应该立刻就开始使用。持续集成最大的好处是,它能帮你立刻找出引入到系统中的错误,而不是...2009-01-20 14:51:12 · 171 阅读 · 0 评论 -
“第十五章 站点生成” 发布
在线阅读地址:http://books.sonatype.com/maven-book/reference_zh/site-generation.html Maven最吸引人的特征之一就是它能帮你自动构建项目web站点,做一些简单的配置,然后输入几条简单的命令,一个像模像样的站点就能发布了,我现在还清晰的记得第一次用Maven成功构建站点后的那份惊喜。 大致介绍下本章内容:如何生成站...2009-01-13 21:58:20 · 110 阅读 · 0 评论 -
“第十三章 属性和资源过滤”发布
本章内容很少,十页左右,不过讲述的内容非常实用。我们使用Maven的时候,经常会碰到这样的问题:同样的build,在开发的时候会依赖于开发数据库,而在持续集成服务器上,就需要依赖于另外一个数据库。如果用同一个数据库,开发时的build可能会破坏持续集成的build。同理,开发者A和B也想根据自己的数据库build,不想相互干扰。Maven的属性引用和资源过滤可以十分优雅的解决这类问题。可能你没有...2009-01-06 00:34:28 · 111 阅读 · 0 评论 -
Maven最佳实践:划分模块
“分天下为三十六郡,郡置守,尉,监” —— 《史记·秦始皇本纪》 所有用Maven管理的真实的项目都应该是分模块的,每个模块都对应着一个pom.xml。它们之间通过继承和聚合(也称作多模块,multi-module)相互关联。那么,为什么要这么做呢?我们明明在开发一个项目,划分模块后,导入Eclipse变成了N个项目,这会带来复杂度,给开发带来不便。 为了解释原因,假设有这样一个项目,很常...2008-12-28 00:32:10 · 1478 阅读 · 1 评论 -
Maven权威指南
2010/04/29更新:我已经在个人网站提供了PDF下载 http://www.juvenxu.com/mvn-def-guide/ 《Maven权威指南》介绍关于Maven----------------Maven这个单词来自于意第绪语,意味知识的积累,最早在Jakata Turbine项目中它开始被用来视图简化构建过程。当时有很多项目,它们的Ant bui...2008-12-16 15:12:48 · 318 阅读 · 0 评论 -
使用maven-sql-plugin实现持续数据库集成(CDBI)
数据库持续集成(Continuous Database Integration, CDBI)是持续集成(Continuous Ingeration, CI)不可或缺的重要组成部分。在典型的情况下,版本控制系统管理数据库脚本,包括数据库定义语言(DDL)和数据库操纵语言(DML)。开发成员在开发过程中添加或者修改数据库脚本,在本地运行过之后,提交至版本控制系统,并由此激发一次持续构建。CI服务器执...2008-06-24 09:26:58 · 248 阅读 · 0 评论