setter的gravatar头像
setter 2017-03-17 11:02:36
eclipse使用Maven项目的搭建:初步介绍

今天给大家介绍一个项目管理和综合工具:Maven

Maven:

maven读作 ['meivin],本意是指可以被信任的领域专家,致力于传播知识(来自于http://en.wikipedia.org/wiki/Maven)。

Maven是一个跨平台的项目管理工具。来源于Apache的开源项目。主要服务于基于Java平台的项目构建依赖管理项目信息管理

Maven是一款优秀的构建工具

我们一直在不停地需找避免重复的方法。设计的重复、编码的重复、文档的重复,当然还有构建的重复。Maven最大化的消除了构建的重复,抽象了构建生命周期,并且为绝大部分的构建任务提供了已实现的插件,我们不需要定义过程,甚至不需要再去实现这些过程中的一些任务。

Maven不仅仅是构建工具

maven不仅是构建工具,还是一个依赖管理工具和项目管理工具。

依赖管理

几乎任何Java应用都会借用一些第三方的开源类库,这些类库通过依赖的方式引入进项目。随着依赖的增多,版本不一致、版本冲突、依赖臃肿等问题会接踵而来。Maven提供了一个优秀的解决方案,通过坐标系统精确定位每一个构件(artifact)。

项目信息管理

maven把分散在各处的项目信息,包括项目描述、开发者列表、版本控制地址、许可证、缺陷管理系统地址等集中起来。Maven可以把这些信息生成 一个站点,用于开源项目的发布。通过一些插件,我们还可以轻松的获得项目文档、测试报告、静态分析报告、源码版本日志报告等有价值的项目信息。

中央仓库

maven为全世界的Java开发者提供了一个免费的中央仓库,在其中几乎可以找到任何流行开源类库。通过一些衍生搜索工具,确定类库坐标后,Maven会帮我们自动下载构建,省去手工劳动。

约定优于配置

Maven约定了项目目录结构、测试用例命名方法等内容。只要遵循这些成熟的规则,用户在项目间切换的时候救免去了额外的学习成本。 

为什么选Maven

Maven不是Java领域的唯一解决方案,还有IDE,Ant等。

IDE不是万能的

像Eclipse这类优秀的IDE大大的提高了开发效率,几乎覆盖开发需要的全部功能,包括代码编辑、调试、重构、编译。然而IDE还是有不足的地方

IDE依赖大量的手工操作。

IDE存在差异性,每个开发者都有自己个个性化配置。

Ant

Ant可以看成一个Java版本的Make,也是一款非常优秀的构建工具。最早用于构建著名的Tomcat项目。但是Ant和Maven显著的区别 是,Ant是过程式的,Maven是声明式的。Ant可以理解为一种由xml定义的可扩展脚本语言。Ant脚本可以省去重复的劳动,Maven做得更绝, 可以省去劳动。

Ant最大的缺陷是没有依赖管理,需要借助Ivy来解决依赖管理。通过Ivy,Ant可以依赖Maven仓库里的构件,但是不了Maven原生实现的那么方便,特别是对于依赖范围的处理。

 

Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。

首先,为什么有maven?构建是程序员每天要做的工作,而且相当长的时间花在了这上面,而maven使这系列的工作完全自动化。 我们一直在寻找避免重复的方法,设计的重复,文档的重复,编码的重复,构建的重复等,maven是跨平台的,最大的消除了构建的重复。

eclipse使用Maven项目的搭建:初步介绍

 

maven的其他优势:

1. maven不仅是构建工具,它还是依赖管理工具和项目管理工具,提供了中央仓库,能够帮我们自动下载构件。

2.为了解决的依赖的增多,版本不一致,版本冲突,依赖臃肿等问题,它通过一个坐标系统来精确地定位每一个构件(artifact)。

3.还能帮助我们分散在各个角落的项目信息,包括项目描述,开发者列表,版本控制系统,许可证,缺陷管理系统地址。

4.maven还为全世界的Java开发者提供了一个免费的中央仓库,在其中几乎可以找到任何的流行开源软件。通过衍生工具(Nexus),我们还能对其进行快速搜索

5.maven对于目录结构有要求,约定优于配置,用户在项目间切换就省去了学习成本。

Maven的特点:项目构建,依赖管理 

1、一旦服务器上安装maven,其中包含的repo资源库可以在任意工程中共享。Maven对所依赖的包有明确的定义,如使用那个包,版本是多少 

2、依赖库下载自动化。打开一个工程中Pom.xml,其中的dependency项中的groupID子项只要编写好就可实现自动下载。Maven是基于中央仓库的编译,即把编译所需要的资源放在一个中央仓库里。当编译的时候,maven会自动在仓库中找到相应的包,如果本地仓库没有,则从设定好的远程仓库中下载到本地。

3、外部jar包安装只需maven install--命令行实现,也可通过插件完成 打jar包也可直接使用命令行形式,也可通过插件完成。

eclipse使用Maven项目的搭建:初步介绍

下载及安装:

1.下载最新版 Maven

下载地址 http://maven.apache.org/download.cgi

2.解压下载的压缩包

eclipse使用Maven项目的搭建:初步介绍

3.配置环境变量

配置环境变量(需要先配置好%JAVA_HOME%环境变量): 其他配置(后面讲到):settings.xml。

%MAVEN_HOME%/conf目录下的settings.xml,该配置文件针对系统所有用户:

eclipse使用Maven项目的搭建:初步介绍

eclipse使用Maven项目的搭建:初步介绍

4、查看是否配置成功

eclipse使用Maven项目的搭建:初步介绍

 

目录结构:

  • src/main/java-存放项目.java文件
  • src/main/resources-存放项目资源文件
  • src/test/java-存放测试类.java文件
  • src/test/resources-存放测试资源文件
  • target - 项目输出目录
  • pom.xml - Maven核心文件

eclipse使用Maven项目的搭建:初步介绍

MyEclipse提供了Maven4MyEclipse插件,已经内置安装了Maven;但我们通常使用自己下载配置的Maven,在Installations选项中添加我们刚才下载配置的Maven

eclipse使用Maven项目的搭建:初步介绍

新建一个 Maven Project:

eclipse使用Maven项目的搭建:初步介绍

选择 workbench Location :

eclipse使用Maven项目的搭建:初步介绍

选择 Maven Archetype(项目骨架),这里我们选择 maven-archetype-webapp 

eclipse使用Maven项目的搭建:初步介绍

 

设置 Maven 相关参数,Group IdArtifact IdVersionPackage。它们共同组成 Maven 的坐标

eclipse使用Maven项目的搭建:初步介绍

这里的groupId一般命名规范沿袭java包命名规范 

 

项目创建成功之后,我们看到 MyEclipse 默认只为我们创建了 src/main/resources,打开项目属性 - Java Build Path,打开 Libraries,编辑JRE 环境,选择自己安装的JDK 

eclipse使用Maven项目的搭建:初步介绍

eclipse使用Maven项目的搭建:初步介绍

这时,添加src/main/java

 

eclipse使用Maven项目的搭建:初步介绍

设置 Project Facets。选择 Java 1.7 版本和 Dynamic Web Module 3.0 版本

eclipse使用Maven项目的搭建:初步介绍

设置部署打包结构如下

eclipse使用Maven项目的搭建:初步介绍

打开pom.xml文件,我们看到Maven已经为我们添加了JUnit3.8.1的依赖,这里我们改成 JUnit 4.11,同时添加 Servlet-api 的依赖包

eclipse使用Maven项目的搭建:初步介绍

 

Maven已经提供大量相关jar包引用地址,但是有些jar包找不到,例如: com.springsource.net.sf.cglib-2.2.0.jar, 

在maven默认的官方库(http://repo.maven.apache.org/maven2 )没有找到此jar,但是在http://repository.sonatype.org/content/groups/public/ 这个库中有这个jar,因此在MyEclipse中添加这个库即可。

在maven默认的官方库(http://repo.maven.apache.org/maven2 )没有找到此jar,但是在http://repository.sonatype.org/content/groups/public/ 这个库中有这个jar,因此在eclipse中添加这个库即可,如下:

eclipse使用Maven项目的搭建:初步介绍

如果有些jar包不确定GroupId,下载地址,可以在该网站下查询:http://mvnrepository.com/

eclipse使用Maven项目的搭建:初步介绍

好了,Maven的初步介绍就先告一段落。


打赏
最近浏览
xiaobig  LV1 2017年11月12日
王庆乾wdq  LV13 2017年10月7日
Jamen1996  LV8 2017年10月7日
203778513  LV9 2017年9月13日
Luis虎子  LV16 2017年8月8日
kinggode  LV14 2017年7月22日
Kuinne  LV5 2017年6月19日
whb5566  LV10 2017年5月19日
Simplen  LV13 2017年5月18日
一名小学生  LV10 2017年5月8日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友