文档章节

Maven入门

Jackson_Mu
 Jackson_Mu
发布于 2014/12/15 12:15
字数 1190
阅读 158
收藏 2
  1. 定义

    Ø  Maven是一个项目管理工具,它包含了:

    Ø  一个项目对象模型 (Project Object Model)

    Ø  一组标准集合,

    Ø  一个项目生命周期(Project Lifecycle)

    Ø  一个依赖管理系统(Dependency Management System)

    Ø  用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

  2. ant对比

    Ant是构建工具 ,仅关注预处理,编译,打包,测试和分发。

    Maven是项目管理工具,除了构建外,还能:

    Ø 运行报告

    Ø 生成站点

    Ø 标准化,便于项目成员之间交流,知识积累

    Ø 高度重用

  3. 下载与安装

    3.1 准备

    下载地址:http://maven.apache.org/download.cgi,当前最新版本为 3.2.1

    检查JDK是否安装,如果没安装则先安装JDK

    3.2 安装

    a.       Maven解压到指定目录(如:F:\ICS\apache-maven-3.0.5-bin\apache-maven-3.0.5)

    b.       配置环境变量:在系统变量中新建一个变量,变量名为M2_HOME,值为F:\ICS\apache-maven-3.0.5-bin\apache-maven-3.0.5在系统变量中找到一个名为Path的变量,在变量值的末尾加上%M2_HOME%\bin;

    3.3 检查是否安装成功

    cmd中输入命令mvn –version,如下图展示出Maven的信息则说明安装成功。

    3.4 修改本地仓库的位置

    打开全局配置文件,%M2_HOME%\conf\settings.xml,<localRepository>{本地仓库路径}</localRepository>。

    3.5 与Eclipse集成

    新版本的Eclipse中已经做了集成, 如果你的EclipseWindow——>Preferences里面没有Maven选项,需要手动去集成。

    启动Eclipse之后,在菜单栏中选择Help,然后选择Install New Software…,接着你会看到一个Install对话框,点击Work with:字段边上的Add按钮,你会得到一个新的Add Repository对话框,在Name字段中输入m2e,Location字段中输入http://m2eclipse.sonatype.org/sites/m2e,然后点击OK。

  4. Maven中的核心概念

    4.1 生命周期(LifeCycle)

    Maven有三套独立的生命周期,它们分别是clean , default,  site

    1) clean    生命周期是用于清理项目 (默认是删除了target文件夹)

    2) default  生命周期是用于构建项目 

    3) site     生命周期是是用于建立项目站点

    4.2 Clean中的阶段(Phase)

    pre-clean
    清理之前的准备
    clean
    进行清理工作,通常是清理掉target文件夹
    post-clean
    清理之后的准备工作

    4.3 Default中的阶段(Phase)

    4.3 Site中的阶段(Phase)

    pre-site, site, post-site, site-deploy

    4.4 依赖管理

    4.4.1 坐标

    1groupId:当前项目隶属的实际项目。

    2)  artifactId:所属模块。

    3version:版本号

    4packaging:打包方式

    4.4.2 Scope: 什么时候加入到classpath中。

    4.4.3 依赖具有传递性。

    4.5 仓库

    4.5.1 本地仓库:localRepository

    4.5.2 远程仓库:

    1)中央仓库:中央仓库是默认的远程仓库,如果不做任何特殊配置那么将会从中央仓库下载依赖,这在$M2_HOME/lib/maven-model-builder-3.0.4.jar里的org/apache/maven/model/pom-4.0.0.xml里做了指定。

    2)其他远程仓库:如Jboss远程仓库

    3)镜像

    4)私服

    4.6 插件与目标:一个插件可以执行多个目标,根据不同的工程packing类型在各个phase中默认绑定了一些goal。下面是一个使用mybatis-generator-maven-plug自动生成代码插件的配置方法。

    4.7 POM文件(项目对象模型),主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其他所有的项目相关因素。示例:

  5. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.chinasofti.rcloud</groupId>
      <artifactId>rabbitmq-client</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <dependencies>
          <dependency>
    	      <groupId>com.rabbitmq</groupId>
    	      <artifactId>amqp-client</artifactId>
    	      <version>3.4.0</version>
    	  </dependency>
      </dependencies>
    </project>
  6. 创建Maven工程

    6.1 命令创建

    1) 创建简单maven项目 
    mvn archetype:create -DgroupId=com.chinasofti.rcloud -DartifactId=RCloud

    2)创建maven web项目 
    mvn archetype:create -DgroupId=com.chinasofti.rcloud -DartifactId=RCloudWeb -DarchetypeArtifactId=maven-archetype-webapp 

    6.2 Eclipse创建

    New à Other… à Maven Project,选择Archetype:如果是普通项目可以选择maven-archetype-quickstart; 如果是web项目可以选择maven-archetype-webapp.

  7. 私服nexus

    7.1 下载及安装

    参考网站http://www.sonatype.org/nexus/go

    访问地址http://localhost:8081/nexus 进入默认用户名密码为admin/admin123.

    7.2 从私服下载jar包

    修改settings.xml

    <profile>  

          <id>dev</id>  

          <repositories>  

            <repository>  

              <id>local-nexus</id>  

              <url>http://host:8081/nexus/content/groups/public/</url>  

              <releases>  

                <enabled>true</enabled>  

              </releases>  

              <snapshots>  

                <enabled>true</enabled>  

              </snapshots>  

            </repository>  

          </repositories>  

        </profile>  

      </profiles>

      <activeProfiles>  

        <activeProfile>dev</activeProfile>  

      </activeProfiles>

    7.3 分发构件至私服

    1) 在pom.xml中加入

    <distributionManagement>
        <repository>
            <id>nexus-releases</id>
            <name>Nexus Releases Repository</name>
            <url>http://IP:8081/nexus/content/repositories/releases/</url>
        </repository>
        <snapshotRepository>
            <id>nexus-snapshots</id>
            <name>Nexus Snapshots Repository</name>
            <url>http://IP:8081/nexus/content/repositories/snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

    2) settings.xml中加入

    <server>
        <id>nexus-releases</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
    <server>
        <id>nexus-snapshots</id>
        <username>admin</username>
        <password>admin123</password>
    </server>

  8. 其他

         推荐书籍《Maven实战》

     挑战者gradle

© 著作权归作者所有

Jackson_Mu
粉丝 72
博文 17
码字总数 15900
作品 0
海淀
程序员
私信 提问
[Maven-不忘初心,方得始终] Maven-项目管理与构建

Maven课程概述: Maven快速入门 Maven核心知识 Maven建立web项目 1. Maven快速入门 Maven介绍及环境搭建: Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、报告和文档...

LSantorini
2016/02/14
154
0
Apache Maven 入门篇

Apache Maven 入门篇 ( 上 ) http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-1-406235-zhs.html Apache Maven 入门篇(下) http://www.oracle.com/techn......

吴海宏
2014/10/21
117
0
Maven入门系列(五)——在STS应用Maven项目开发入门

我写这个入门系列只是想给那些“Maven是什么”的学弟和学妹们一个快速入门的帮助,为了纪念曾经也走了很多弯路的自己,即使自己也还有很长的路在前面。所以,各路神仙就不要说什么太基础之类...

HappyBKs
2015/04/12
600
0
Maven 入门引导

weblog 里有很多精彩的文章,大部分都是关于某项技术的个人解释和感想,这样是很好,也是 blog 文章的主要方式,其实还有一种很好的方式就是告送后来人,你的学习历程,比如:你是怎么学习一...

青夜之衫
2017/12/08
0
0
Flyway 使用入门

Flyway 使用入门 www.blogways.net2018-01-061 阅读 入门 Flyway是一款开源的数据库版本管理工具,包含社区版、专业版和企业版,可以独立于应用实现管理并跟踪数据库变更。支持多种配置,包括...

www.blogways.net
2018/01/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

sync.Mutex 互斥锁

说明: 互斥锁用来保证在任一时刻,只能有一个例程访问某对象。Mutex 的初始值为解锁状态。Mutex 通常作为其它结构体的匿名字段使用,使该结构体具有 Lock 和 Unlock 方法。Mutex 可...

李琼涛
14分钟前
5
0
自建redis笔记

自建redis笔记 最近在linux安装了一下redis,特做一些笔记! 本文先单节点启动redis,然后再进行持久化配置,在次基础上,再分享搭建主从模式的配置以及Sentinel 哨兵模式及集群的搭建 单节点...

北极之北
17分钟前
3
0
扛住阿里双十一高并发流量,Sentinel是怎么做到的?

Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景 本文介绍阿里开源限流熔断方案Sentinel功能、原理、架构、快速入门以及相关框架比较 基本介绍 1 名词解释 服务限流 :当系统资源...

分布式系统架构
18分钟前
4
0
事假杨晨龙(Z16021)月薪请假单

svn co URL --username xxx-- password yyy ./

桃花飞舞
42分钟前
4
0
当Activity关闭后,网络请求回调的处理

当我们在使用网络请求的时候,一般都是通过回调来获取请求到的数据。对于网络请求的回调需要注意的几个点 比如我们的回调在Activity中处理数据,当我们把Activity关闭后,如果获取到数据时,...

shzwork
43分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部