maven技术

Maven是一个项目的管理和综合工具,他提供了开发人员构建一个完整项目的生命周期框架。在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作,同时创建报表,检查,构建和测试自动化设置。它的设置都很简单,并且可重复使用,让开发人员的工作更轻松。概括地说,Maven简化和标准化了项目创建的过程。处理 编译,分配,文档,团队协作和其他任务的无缝连接。

总之,Maven是一种创新的软件项目管理工具,提供了一个项目对象模型(POM)文件的新概念来管理项目的构建、相关性和文档。他最强大的功能就是能够自动下载项目依赖库。

Maven目标(Goal)
Maven中有有一个比较重要的概念,就是目标(Goal):表示一个特定的、对构建和管理工程有帮助的任务。它可能绑定了 0 个或多个构建阶段。没有绑定任何构建阶段的目标可以在构建生命周期之外被直接调用执行。对goal的一个定义可以是:

项目是可重复使用,易维护,更容易理解的一个综合模型。
插件或交互的工具,这种声明性的模式

针对这种,在特定phase执行对工程有帮助的任务的功能,使得我们能够使用它的一些特性(比如使用Maven原生的插件)和加入一些自定义的动作(基于Maven开发自定义的插件),为我们的开发提供多样性的功能。

例如:mvn clean dependency:copy-dependencies package,执行mvn clean package时,可以直接调用某个构建过程中未被绑定的阶段任务,这里的操作是利用dependency插件的goal:copy-dependencies将项目所有依赖jar包归档到classpath(~/target/classes/)

Maven安装配置
Maven的安装包括Linux环境下,和Windows环境下,具体安装和说明这里忽略。

这里需要注意的是用户配置文件:settings.xml,包含了众多的客户化配置,需要各位重点关注。

Maven资源库
Maven资源库,顾名思义,就是Maven存放资源文件的地方,根据存放位置,他有以下几种资源库:

Maven本地资源库

Maven中央仓库 http://search.maven.org/ 或者 http://mvnrepository.com/

Maven和Eclipse
不管是官方Eclipse,还是公司自研的Eclipse都已经集成了Maven,我们可以直接使用工具去创建一个Maven项目。依托Eclipse集成工具,我们可以对项目进行可视化编译、构建、测试、打包、校验、安装、发布等等操作过程。我们不仅可以使用这些操作,可以看到操作中反应的日志,可以得到最终构建的结果。总之很方便,当然,也可以自己本地尝试。

Maven项目结构
上面说了,Maven是基于对象模型(POM)文件来构建项目的,而他另外的组成还包括src/main/java,src/main/resources,src/test/java,src/test/resources的maven标准文件结构。

结构:pom.xml

Maven生命周期
生命周期其实就是一组阶段的序列(sequence of phases),每个阶段定义了目标被执行的顺序。Maven标准生命周期包括:

clean (包括pre-clean clean post-clean)
default(or build)
site

Maven管理依赖
Maven依赖说明
Maven 核心特点之一是依赖管理。一旦我们开始处理多模块工程(包含数百个子模块或者子工程)的时候,模块间的依赖关系就变得非常复杂,管理也变得很困难。针对此种情形,Maven 提供了一种高度控制的方法:依赖管理(dependencyManagerment),依赖(dependencies)。

Maven-Project(A) Maven-Solution-Project (包含Solution-Parent) Solution-Parent
+_ dependency B (B项目依赖了log4j、netty、junit) +_ dependency Maven-Project(A) +_ dependencyManagerment
+_ dependency C (C项目依赖了xmlpull、jface、项目D) +_ dependencyManagerment +_ dependency log4j 1.0
+_ dependency D (C项目依赖了很多第三方jar包) +_ dependency 项目D +_ dependency netty 1.0
+_ dependency junit 1.0
+_ dependency xmlpull 1.0
+_ dependency jface 1.0

传递依赖发现
项目中会出现这种情形:项目A依赖于B,项目C依赖于项目A,那么C也会依赖到B。这种机制是通过读取工程文件(pom.xml)中的依赖项,Maven 可以找出工程之间的依赖关系。但如果项目结构越发庞大,项目间依赖也势必复杂。针对这种情况,Maven提供了一些功能去控制可递增的依赖。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值