Maven入门

来源:互联网 发布:数控车床编程100例 编辑:程序博客网 时间:2024/06/03 16:52

Maven入门

  • 1.1 介绍
    Maven是一个采用纯Java编写的开源项目管理工具,Maven采用了一种被称之为Project Object Model(POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中,通过该文件Maven可以管理项目的整个生命周期,包括清除、编译、测试,报告、打包,部署等

    好处:
    节省程序员的时间与精力,开发人员主要任务是关注商业逻辑并实现它,而不是把时间浪费在学习如何在不同的环境中去依赖jar包,项目部署等。

  • 1.2
    Maven能够做什么
    1 Jar的声明式依赖性管理
    2 项目自动构建

  • 1.3 Maven 目录分析
    bin: 含有mvn运行的脚本
    boot: 含有plexus-classworlds类加载器框架
    conf: 含有settings.xml配置文件
    lib: 含有Maven运行时所需要的java类库
    Settings.xml中默认的用户库: ${user.home}/.m2/repository
    Maven默认仓库下载地址: maven 的lib目录下 maven-model-builder-3.0.4.jar的pom.xml中

  • 1.4 第一个Maven演示
    项目目录结构:
    Hello
    –src
    —–main
    ———-java –用来存放Java文件
    ———-resources –用来存放资源文件
    —–test
    ———java –用来存放测试的Java文件
    ———resources
    –target –项目输出位置,编译完毕后自动生成
    –pom.xml – 项目对象模型的描述 ,它是maven配置的核心

    1. 4.1 建立pom.xml
    <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">  <!-- 当前pom的版本号 -->  <modelVersion>4.0.0</modelVersion><!—grounpId, artifactId, version用来定义打包文件坐标-->  <!-- groupId:当前项目所在的组;组名一般是关的包名 当前jar所属的命名空间 -->  <groupId>cn.it.maven</groupId>  <!-- 当前项目模块名称 -->  <artifactId>Hello</artifactId>  <!-- 当前项目的版本, SNAPSHOT镜像版,一般用于开发等不稳定 版本 -->  <version>0.0.1-SNAPSHOT</version>    <!-- 当前模块需要依赖的相关jar包,也称为依赖管理, 所有被依赖的包都是通过"坐标"定位的 -->    <dependencies>        <!-- 需要依赖junit 通过 groupId+artifactId+version来查找,如果本地没有则到中央仓库下载 -->        <dependency>            <!-- 当前jar所属的命名空间 -->            <groupId>junit</groupId>            <!-- 依赖的项目模块的名称 -->            <artifactId>junit</artifactId>            <!-- 依赖的版本号 -->            <version>4.9</version>            <!-- 依赖的范围, 有 test compile privlege -->            <scope>test</scope>        </dependency>

1.4.2 创建Java类与测试类
- 在src/main/java/cn/it/maven目录下新建文件Hello.java

    package cn.it.maven;public class Hello {    public String sayHello(String name){        return "Hello "+name+"!";    }}
  • 在/src/test/java/cn/it/maven目录下新建测试文件HelloTest.java
package cn.it.maven;import org.junit.Test;import static junit.framework.Assert.*;public class HelloTest {    @Test    public void testHello(){        Hello hello = new Hello();        String results = hello.sayHello("litingwei");        assertEquals("Hello litingwei!",results);           }}
  • 1.5. 命令测试
    打开cmd命令行, 进入Hello项目根目录执行mvn compile命令, 查看根目录变化
    cmd 中继续录入mvn clean命令,然后再次查看根目录变化
    cmd 中录入 mvn clean compile命令, 查看根目录变化
    cmd 中录入 mvn clean test命令,查看根目录变化
    cmd 中录入 mvn clean package命令,查看根目录变化 打包放在 项目下边
    cmd 中录入 mvn install : 安装,把项目的jar包安装到 本地仓库 扔到仓库

  • 1.6Maven核心概念
    1.6.1 Maven插件
    Maven的核心仅仅定义了抽象的生命周期,具体的任务都是交由插件完成的每个插件都能实现多个功能,每个功能就是一个插件目标
    Maven的生命周期与插件目标相互绑定,以完成某个具体的构建任务, Maven的插件在: .m2\repository\org\apache\maven\plugins (也可以更改目录)

    1.6.2 Maven坐标
    - groupId:定义当前Maven项目组 (实际对应JAVA的包的结构,有些跟公司名称相关的项目)
    - artifactId:定义实际项目中的一个模块(项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称)
    - version:定义当前项目的当前版本

    1.6.3 Maven仓库     - 何为Maven仓库: 用来统一存储所有Maven共享构建的位置是仓库   -   Maven配置jar或其它包的路径为 :            groupId/artifactId/version-   本地仓库(~/.m2/repository/):每个用户只有一个本地仓库-   中央仓库(Maven默认的远程仓库):Maven默认的远程仓库下载地址为:http://repo1.maven.org/maven2-   私服:是一种特殊的远程仓库, 它是架设在局域网内的仓库, 主要是为了团队协作开发

整个Maven 仓库的目录结构

原创粉丝点击