Maven入门

本文深入探讨了Maven作为项目管理工具的核心概念,包括生命周期、依赖管理、仓库、插件与目标等,并提供了从下载、安装到与Eclipse集成的详细步骤。同时,介绍了如何利用Maven进行私服配置与构件分发,以及使用Maven创建和管理Maven工程的方法。此外,还提到了Maven在构建过程中的优势和与其他工具的集成能力。
  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的信息则说明安装成功。

    121131_4yEt_76720.jpg

    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)125933_v9as_76720.jpg125933_M88u_76720.jpg

    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自动生成代码插件的配置方法。

    131224_vNQh_76720.jpg

    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

转载于:https://my.oschina.net/mup/blog/356178

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值