首页 > 其他 > 详细

maven

时间:2019-06-02 22:24:58      阅读:138      评论:0      收藏:0      [点我收藏+]

一、 Maven 概念


1 什么是 Maven


Maven 使用项目对象模型(POM)的概念,可以通过一小段描述信息来管理项目的构建,
报告和文档的软件项目管理工具。
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的
缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项
目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发布时使用 Maven,而且
公司项目采用 Maven 的比例在持续增长。


2 Maven 和 ANT 的区别


Ant 是软件构建工具,Maven 的定位是软件项目管理和理解工具。Maven 除了具备 Ant
的功能外,还增加了以下主要的功能:


1)使用 Project Object Model 来对软件项目管理;
2)内置了更多的隐式规则,使得构建文件更加简单;
3)内置依赖管理和 Repository 来实现依赖的管理和统一存储;
4)内置了软件构建的生命周期;


目前,绝大多数开发人员都把 Ant 当作 Java 编程项目的标准构建工具。遗憾的是,
Ant 的项目管理工具(作为 make 的替代工具)不能满足绝大多数开发人员的需要。通过检
查 Ant 构建文件,很难发现项目的相关性信息和其它信息(如开发人员/拥有者、版本或站
点主页)。


二、 Maven 的下载与 IDE 的整合


1 下载地址


http://maven.apache.org/


2 Maven 的目录结构

技术分享图片

3 Eclipse 整合 Maven


3.1整合步骤

技术分享图片

 

 技术分享图片

技术分享图片

3.2指定 maven 的配置文件

技术分享图片

 

 

4 Maven 仓库与配置


4.1Maven 仓库是什么


4.1.1Maven 仓库


Maven 仓库是基于简单文件系统存储的,集中化管理 Java API 资源(构件)的一个服
务。仓库中的任何一个构件都有其唯一的坐标,根据这个坐标可以定义其在仓库中的唯一存
储路径。得益于 Maven 的坐标机制,任何 Maven 项目使用任何一个构件的方式都是完全
相同的,Maven 可以在某个位置统一存储所有的 Maven 项目共享的构件,这个统一的位
置就是仓库,项目构建完毕后生成的构件也可以安装或者部署到仓库中,供其它项目使用。
对于 Maven 来说,仓库分为两类:本地仓库和远程仓库。

 

4.1.2远程仓库


远程仓库指通过各种协议如 file://和 http://访问的其它类型的仓库。这些仓库可能是第
三方搭建的真实的远程仓库,用来提供他们的构件下载(例如 repo.maven.apache.org 和
uk.maven.org 是 Maven 的中央仓库)。其它“远程”仓库可能是你的公司拥有的建立在文件
或 HTTP 服务器上的内部仓库,用来在开发团队间共享私有构件和管理发布的。


4.1.3本地仓库


本地仓库指本机的一份拷贝,用来缓存远程下载,包含你尚未发布的临时构件。


5 仓库配置


5.1在 settings.xml 文件中配置本地仓库


本地仓库是开发者本地电脑中的一个目录,用于缓存从远程仓库下载的构件。默认的本
地仓库是${user.home}/.m2/repository。用户可使用 settings.xml 文件修改本地仓库。具体内容
如下:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- 本地仓库配置 -->
<localRepository>/put/your/local/repository/here</localRepository>
<!-- 省略,具体信息参考后续内容。 -->
</settings>

 

5.2在 settings.xml 文件中配置镜像仓库


如果仓库 A 可以提供仓库 B 存储的所有内容,那么就可以认为 A 是 B 的一个镜像。例
如:在国内直接连接中央仓库下载依赖,由于一些特殊原因下载速度非常慢。这时,我们可
以使用阿里云提供的镜像 http://maven.aliyun.com/nexus/content/groups/public/来替换中央仓
库 http://repol.maven.org/maven2/。修改 maven 的 setting.xml 文件,具体内容如下:

<mirror> 
<!-- 指定镜像 ID -->
<id>nexus-aliyun</id> 
<!-- 匹配中央仓库。-->
<mirrorOf>central</mirrorOf>
<!-- 指定镜像名称 --> 
<name>Nexus aliyun</name> 
<!-- 指定镜像路径 -->
<url>http://maven.aliyun.com/nexus/content/groups/public</url> 
</mirror>

 

6 仓库优先级问题


本地仓库,镜像仓库,中央仓库。
镜像仓库=中央仓库。 镜像仓库是用于替代中央仓库的。
仓库访问优先级:


6.1本地仓库


第一访问本地仓库。

 

6.2指定仓库


如果本地仓库不存在对应信息,访问配置文件中指定的远程仓库。
这个远程仓库是第二优先级。


6.3远程仓库


6.3.1镜像仓库


镜像仓库是 Maven 开发过程中的首选远程仓库,在本地仓库和指定仓库无法获取资源
的时候,直接访问镜像仓库。


6.3.2中央仓库


如果镜像仓库不是中央仓库,则会在访问镜像仓库无法获取资源后,访问中央仓库。


三、 Maven 工程

1 Maven 的工程类型


1.1POM 工程


POM 工程是逻辑工程。用在父级工程或聚合工程中。用来做 jar 包的版本控制。


1.2JAR 工程


将会打包成 jar 用作 jar 包使用。即常见的本地工程 - Java Project。


1.3WAR 工程

 

将会打包成 war,发布在服务器上的工程。如网站或服务。即常见的网络工程 - Dynamic
Web Project。war 工程默认没有 WEB-INF 目录及 web.xml 配置文件,IDE 通常会显示工程
错误,提供完整工程结构可以解决。

 

2 创建 Maven 项目


2.1创建步骤


2.1.1New--> other -->Maven Project

技术分享图片

2.1.2勾选,创建纯净项目,不应用任何模版

技术分享图片

技术分享图片

 

2.2填写项目信息


2.2.1 Group Id 公司域名倒写


2.2.2 Artifact Id 项目名


2.2.3 Version 版本名


2.2.4 Packaging 项目类型


2.2.4.1 Jar java 项目


2.2.4.2 War : web 项目


2.2.4.3 POM: 父项目.如果项目有子项目,项目必须是 pom


2.2.5 Name : 自定义名称,内容任意


2.2.6 Description: 描述.详细描述.


2.2.7 Parent Project: 如果当前项目有父项目时填写


2.3Maven 项目结构


src/main/java 这个目录下储存 java 源代码

src/main/resources 储存主要的资源文件。比如spring的xml配置文件和log4j的properties
文件。
src/test/java 储存测试用的类,比如 JUNIT 的测试一般就放在这个目录下面
src/test/resources 储存测试用的资源文件
src 包含了项目所有的源代码和资源文件,以及其他项目相关的文件。
target 编译后内容放置的文件夹
pom.xml 是 Maven 的基础配置文件。配置项目和项目之间关系,包括配置依赖关系等

 

maven

原文:https://www.cnblogs.com/wq-9/p/10964648.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!