Java框架_Maven_day01

目录

 

一、 Maven的相关概念

1.1 Maven介绍

1.1.1 什么是Maven

1.1.2 Maven的作用

1.1.3 Maven的好处

1.2 Maven仓库和坐标

1.2.1 Maven的仓库

1.2.2 Maven的坐标

二、Maven 的常用命令

2.1 clean命令

2.2 compile 命令

2.3 test 命令

2.4 package 命令

2.5 install 命令

2.6 生命周期

三、依赖管理

3.1 导入依赖

3.2 依赖范围

四、插件

4.1 简介

4.2 JDK编译版本的插件

4.3 Tomcat7 服务端的插件


一、 Maven的相关概念

1.1 Maven介绍

1.1.1 什么是Maven

        Maven是项目进行模型抽象,充分运用的面向对象的思想,Maven可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。

1.1.2 Maven的作用

        依赖管理: maven对项目的第三方构件(jar包)进行统一管理。向工程中加入jar包不要手工从其它地方拷贝,通过maven定义jar包的坐标,自动从maven仓库中去下载到工程中。

​         项目构建: maven提供一套对项目生命周期管理的标准,开发人员、和测试人员统一使用maven进行项目构建。项目生命周期管理:编译、测试、打包、安装、部署、运行。

​         maven对工程分模块构建,提高开发效率。

1.1.3 Maven的好处

节省磁盘空间 、可以一键构建 、可以跨平台 、应用在大型项目时可以提高开发效率 (maven工程分解)

1.2 Maven仓库和坐标

1.2.1 Maven的仓库

本地仓库       相当于缓存,工程第一次会从远程仓库(互联网)去下载jar 包,将jar包存在本地仓库(在程序员的电脑上)。第二次不需要从远程仓库去下载。先从本地仓库找,如果找不到才会去远程仓库找。
中央仓库       就是远程仓库,仓库中jar由专业团队(maven团队)统一维护。中央仓库的地址:http://repo1.maven.org/maven2/
远程仓库       在公司内部架设一台私服,其它公司架设一台仓库,对外公开。

1.2.2 Maven的坐标

       Maven的一个核心的作用就是管理项目的依赖,引入我们所需的各种jar包等。为了能自动化的解析任何一个Java构件,Maven必须将这些Jar包或者其他资源进行唯一标识,这是管理项目的依赖的基础,也就是我们要说的坐标。包括我们自己开发的项目,也是要通过坐标进行唯一标识的,这样才能才其它项目中进行依赖引用。

坐标的定义元素如下:

  • groupId:项目组织唯一的标识符,实际对应JAVA的包的结构 (一般写公司的组织名称 eg:com.alibaba)
  • artifactId: 项目的名称
  • version:定义项目的当前版本

举例:要引入junit,只要在 pom.xml 配置文件中配置引入junit的坐标即可

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.10</version>
</dependency>

       总结:如果我们要使用jar,只需要在项目里添加对应的坐标(先从本地仓库找,有就使用,没有就从中央仓库中找,会下载到本地仓库)

二、Maven 的常用命令

2.1 clean命令

       独立的生命周期,清楚编译产生的 target 文件夹内容,可以配合相应命令一起使用,如mvn clean package,mvn clean test

2.2 compile 命令

       maven 的生命周期:compile、test、package、install,该命令可以对src/main/java目录下的代码进行编译

2.3 test 命令

       测试命令,会执行src/test/java下的所有junit测试用例(要先导入junit的jar包坐标)

2.4 package 命令

       mvn package:打包项目

       如果javase项目,打包成jar包;如果javaee项目,打包成war包(打包后的项目会在target目录下找到)

2.5 install 命令

       mvn install:打包后将其安装在本地仓库

2.6 生命周期

       clean 命令是一个独立的生命周期,如果想要执行先清理,再打包,可以执行 clean package 的组合命令完成

       compile、test、package、install:执行后边的命令,会先执行前面的命令

               eg:install 先执行 compile、test、package 命令

三、依赖管理

3.1 导入依赖

       导入依赖坐标,无需手动导入jar包就可以引入jar包

       在 pom.xml 中使用 <dependency> 标签引入依赖,这里提供Maven的官网:http://mvnrepository.com/

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
</dependencies>

3.2 依赖范围

依赖范围对于编译 classpath 有效对于测试 classpath 有效对于运行时 classpath 有效例子
compileYYY

spring-core

test-Y-Junit
providedYY-servlet-api
runtime-YYJDBC驱动
systemYY-本地的,Maven仓库之外的类库

1.compile 编译、测试、运行,A在编译时依赖B,并且在测试和运行时也依赖

         例如:strus-core、spring-beans, C3P0,Druid。会打到war包或jar包

2.provided 编译、和测试有效,A在编译和测试时需要B,在运行时不需要。

         例如:servlet-api就是编译和测试有用,在运行时不用(tomcat容器已提供)。不会打到war包中

3.runtime:测试、运行有效,编译时不需要。

         例如:jdbc驱动包 ,在开发代码中针对java的jdbc接口开发,编译不用在运行和测试时需要通过jdbc驱动包(mysql驱动)连接数据库。会打到war包中

4.test:只是测试有效,只在单元测试类中用。

         例如:junit不会打到war包中

5.按照依赖强度,由强到弱来排序:compile> provided> runtime> test

四、插件

4.1 简介

       Maven是一个核心引擎,提供了基本的项目处理能力和建设过程的管理,以及一系列的插件是用来执行实际建设任务。maven插件可以完成一些特定的功能。例如,集成jdk插件可以方便的修改项目的编译环境;集成tomcat插件后,无需安装tomcat服务器就可以运行tomcat进行项目的发布与测试。在pom.xml中通过plugin标签引入maven的功能插件。

4.2 JDK编译版本的插件

<build>
    <plugins>
        <!--jdk编译插件-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.2</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>utf-8</encoding>
            </configuration>
        </plugin>
    </plugins>
</build>

4.3 Tomcat7 服务端的插件

<!--tomcat插件-->
<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <configuration>
        <!-- 指定端口 -->
        <port>82</port>
        <!-- 请求路径 -->
        <path>/</path>
    </configuration>
</plugin>

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值