摘要: maven引入的传递性依赖机制,一方面大大简化和方便了依赖声明,另一方面,大部分情况下我们只需要关心项目的直接依赖是什么,而不用考虑这些直接依赖会引入什么传递性依赖。但有时候,当传递性依赖造成问题的时候,我们就需要清楚地知道该传递性依赖是从哪条依赖路径引入的。例如,项目A有这样的依赖关系 : A--... 阅读全文
posted @ 2014-07-30 09:26 心随梦飞[fosilzhou] 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 2014-07-04:更新如何在安装程序中找到超级pom文件。Maven有一个超级POM,所有的POM均继承此文件。你可以使用解压工具打开jar文件$M2_HOME/lib/maven-model-builder-x.x.x.jar,然后访问路径org/apache/maven/model/pom-... 阅读全文
posted @ 2014-07-30 09:17 心随梦飞[fosilzhou] 阅读(1433) 评论(0) 推荐(0) 编辑
摘要: POM的全称是“ProjectObjectModel(项目对象模型)”。pom.xml详解声明规范4.0.0基本内容parentgroupIdorg.codehaus.mojoartifactIdmy-projectversion1.0-SNAPSHOTpackagingjardependencie... 阅读全文
posted @ 2014-07-30 09:05 心随梦飞[fosilzhou] 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 去年10月份Apache Maven发布了3.0正式版,而在上个月的22号,Eclipse基金会宣布了Eclipse 3.7(Indigo)的发布,该版本Eclipse最大的新特性之一就是集成了Maven。下载Eclipse IDE for Java Developers版本的用户会发现,Eclip... 阅读全文
posted @ 2014-07-30 09:03 心随梦飞[fosilzhou] 阅读(648) 评论(0) 推荐(0) 编辑
摘要: “打包“这个词听起来比较土,比较正式的说法应该是”构建项目软件包“,具体说就是将项目中的各种文件,比如源代码、编译生成的字节码、配置文件、文档,按照规范的格式生成归档,最常见的当然就是JAR包和WAR包了,复杂点的例子是Maven官方下载页面的分发包,它有自定义的格式,方便用户直接解压后就在命令行使... 阅读全文
posted @ 2014-07-30 09:02 心随梦飞[fosilzhou] 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的。进一步说,每个任务对应了一个插件目标(goal),每个插件会有一个或者多个目标,例如maven- compiler-plu... 阅读全文
posted @ 2014-07-30 09:01 心随梦飞[fosilzhou] 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven-compiler-plugin完成的。进一步说,每个任务对应了一个插件目标(goal),每个插件会有一个或者多个目标,例如maven-compiler-plugi... 阅读全文
posted @ 2014-07-30 09:00 心随梦飞[fosilzhou] 阅读(352) 评论(0) 推荐(0) 编辑
摘要: Maven面临的挑战软件行业新旧交替的速度之快往往令人咂舌,不用多少时间,你就会发现曾经大红大紫的技术已经成为了昨日黄花,当然,Maven也不会例外。虽然目前它基本上是Java构建的事实标准,但我们也能看到新兴的工具在涌现,比如基于Goovy的Gradle,而去年Hibernate宣布从Maven迁... 阅读全文
posted @ 2014-07-30 08:58 心随梦飞[fosilzhou] 阅读(1396) 评论(0) 推荐(1) 编辑
摘要: 自动化集成测试的角色本专栏的上一篇文章讲述了Maven与持续集成的一些关系及具体实践,我们都知道,自动化测试是持续集成必不可少的一部分,基本上,没有自动化测试的持续集成,都很难称之为真正的持续集成。我们希望持续集成能够尽早的暴露问题,但这远非配置一个 Hudson/Jenkins服务器那么简单,只有... 阅读全文
posted @ 2014-07-30 08:57 心随梦飞[fosilzhou] 阅读(721) 评论(1) 推荐(0) 编辑
摘要: Martin的《持续集成》相信很多读者和我一样,最早接触到持续集成的概念是来自Martin的著名文章《持续集成》,该文最早发布于2000年9月,之后在2006年进行了一次修订,它清晰地解释了持续集成的概念,并总结了10条实践,它们分别为:只维护一个源码仓库自动化构建让构建自行测试每人每天向主干提交代... 阅读全文
posted @ 2014-07-30 08:56 心随梦飞[fosilzhou] 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 重复,还是重复程序员应该有狗一般的嗅觉,要能嗅到重复这一最常见的坏味道,不管重复披着怎样的外衣,一旦发现,都应该毫不留情地彻底地将其干掉。不要因为POM不是产品代码而纵容重复在这里发酵,例如这样一段代码就有重复: org.springframework spring-beans 2.5 or... 阅读全文
posted @ 2014-07-30 08:54 心随梦飞[fosilzhou] 阅读(487) 评论(0) 推荐(0) 编辑
摘要: 重构是广大开发者再熟悉不过的技术,在Martin Fowler的《重构——改善既有代码的设计》一书中,其定义为“重构(名词):对软件内部结构的一种调整,目的是在不改变软件之可察行为前提下,提高其可理解性,降低其修改成本.”以及“重构(动词):使用一系列重构准则(手法),在不改变软件之可察行为前提下,... 阅读全文
posted @ 2014-07-30 08:51 心随梦飞[fosilzhou] 阅读(525) 评论(0) 推荐(0) 编辑
摘要: 坐标是什么?为什么要规划?坐标是Maven最基本的概念,它就像每个构件的身份证号码,有了它我们就可以在数以千万计的构件中定位任何一个我们感兴趣的构件。举个最简单的例子,如果没有坐标,使用JUnit的时候,用户就需要去下载依赖jar包,用依赖的方式,简单配置使用如junit:junit:4.8.2就可... 阅读全文
posted @ 2014-07-30 08:50 心随梦飞[fosilzhou] 阅读(275) 评论(0) 推荐(0) 编辑
摘要: Maven内置变量说明:${basedir} 项目根目录(即pom.xml文件所在目录)${project.build.directory} 构建目录,缺省为target目录${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes${pr... 阅读全文
posted @ 2014-07-30 08:48 心随梦飞[fosilzhou] 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 说明:1、使用-选项时,和后面的参数之间可以不要空格。而使用--选项时,和后面的参数之 间必须有空格。如下面的例子:$ mvn help:describe -Dcmd=compiler:compile$ mvn install --define maven.test.skip=true2、有些命令行... 阅读全文
posted @ 2014-07-30 08:47 心随梦飞[fosilzhou] 阅读(421) 评论(0) 推荐(0) 编辑
摘要: 文件存放位置全局配置:${M2_HOME}/conf/settings.xml用户配置:${user.home}/.m2/settings.xmlnote:用户配置优先于全局配置。${user.home}和和所有其他系统属性只能在3.0+版本上使用。请注意windows和Linux使用变量的区别。s... 阅读全文
posted @ 2014-07-30 08:46 心随梦飞[fosilzhou] 阅读(384) 评论(0) 推荐(0) 编辑