Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程

目录

  • Maven概述
  • Maven的安装
  • IDEA创建Maven工程
  • Maven的常用命令
  • Maven的依赖管理

一、 Maven概述

1.1 Maven的概念

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

1.2 Maven的作用

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

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

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

1.3 Maven的概念模型

  • 项目对象模型 (Project Object Model)。POM对象模型,每个maven工程中都有一个pom.xml文件,定义工程所依赖的jar包、本工程的坐标、打包运行方式。
  • 依赖管理系统(基础核心 )。maven通过坐标对项目工程所依赖的jar包统一规范管理。
  • maven定义一套项目生命周期。清理、初始化、编译、测试、报告 、打包、部署、站点生成。
  • 一组标准集合。maven工程有自己标准的工程目录结构、定义坐标有标准。
  • maven 管理项目生命周期过程都是基于插件完成的,例如:开发中使用的tomcat插件。

1.4 Maven的仓库

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

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第1张图片

1.5 Maven的坐标

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

  • groupId:定义当前Maven项目名称
  • artifactId:定义项目模块
  • version:定义当前项目的当前版本

例如:要引入junit的测试jar,只需要在pom.xml配置文件中配置引入junit的坐标即可:

<dependency>
    <groupId>mysqlgroupId>
    <artifactId>mysql-connector-javaartifactId>
    <version>5.1.26version>
    
dependency>
<dependency>
    <groupId>org.springframeworkgroupId>
    <artifactId>spring-coreartifactId>
    <version>4.0.9.RELEASE/version>
dependency>

二、 Maven的安装

跳转到目录

2.1 下载Maven

  • 可以去官网下载
  • 提供的 apache-maven-3.3.9-bin.zip
    链接:https://pan.baidu.com/s/1SdutnwCGcZ-ArTuggP3JUg
    提取码:zkuo

2.2 安装Maven

将Maven压缩包解压,即安装完毕
Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第2张图片

2.3 Maven目录介绍

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第3张图片

2.4 配置环境变量

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第4张图片

2.5 配置本地仓库

2.5.1 将软件文件夹中的Repository解压

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第5张图片

2.5.2 配置本地仓库

在maven的安装目录中conf/ settings.xml文件,在这里配置本地仓库

<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>C:\develop\maven\apache-maven-3.5.2\repositorylocalRepository>

2.6 测试Maven安装成功

打开cmd本地控制台,输入mvn -version

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第6张图片

三、 IDEA创建Maven工程

跳转到目录

3.1 IDEA指定本地Maven

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第7张图片

3.2 创建java工程

3.2.1 创建java工程

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第8张图片
Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第9张图片
Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第10张图片

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第11张图片

3.2.2 java工程目录结构Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第12张图片

3.2.3 编写Hello World!

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第13张图片
Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第14张图片
Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第15张图片

3.3 创建javaweb工程

3.3.1 创建javaweb工程

  • 创建javaweb工程与创建javase工程类似,但在选择Maven骨架时,选择maven-archetype-webapp即可:
    Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第16张图片

  • 创建好的javaweb工程如下:

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第17张图片

  • 所以,要手动创建一个java目录用于编写java代码:

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第18张图片

  • 还要将java目录添加为Source Root:

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第19张图片

3.3.2 发布javaweb工程

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第20张图片

3.3.3 浏览器访问效果

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第21张图片

3.3.4 Maven创建javaweb工程的目录结构

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第22张图片

创建自定义JavaWeb工程

上面在创建javaweb工程时,使用的是maven-archetype-webapp骨架,如果不使用骨架,怎样创建一个javaweb工程呢,见下面的讲解:

  • 创建一个Maven工程,不选择任何骨架

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第23张图片

  • 填写坐标信息

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第24张图片

  • 创建web工程信息

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第25张图片

  • 创建好的javaweb工程的目录结构如下

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第26张图片

四、 Maven的常用命令

跳转到目录

4.1 clean命令

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

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第27张图片

4.2 complie命令

该命令可以对src/main/java目录的下的代码进行编译

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第28张图片

4.3 test命令

测试命令,或执行src/test/java/下junit的测试用例

  • 在src/test/java下创建测试类DemoTest

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第29张图片

  • 执行test命令测试

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第30张图片

  • 控制台显示测试结果

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第31张图片

4.4 package命令

mvn package,打包项目

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第32张图片

打包后的项目会在target目录下找到

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第33张图片

4.5 install命令

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

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第34张图片

安装完毕后,在本地仓库中可以找到itheima_javase_demo的信息

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第35张图片

五、 依赖管理

跳转到目录

5.1 Maven插件

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

5.1.1 JDK编译版本的插件


<plugin>
    <groupId>org.apache.maven.pluginsgroupId>
    <artifactId>maven-compiler-pluginartifactId>
    <version>3.2version>
    <configuration>
        <source>1.7source>
        <target>1.7target>
        <encoding>UTF-8encoding>
        <showWarnings>trueshowWarnings>
    configuration>
plugin>

5.1.2 Tomcat7服务端的插件

  • 配置tomcat7插件

<plugin>
    <groupId>org.apache.tomcat.mavengroupId>
    <artifactId>tomcat7-maven-pluginartifactId>
    <version>2.1version>
    <configuration>
        <port>8080port>
        <server>tomcat7server>
    configuration>
plugin>
  • 运行tomcat7插件

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第36张图片

  • tomcat插件注意问题

    Maven的中央仓库中只有Tomcat7.X版本的插件,而之前我们使用的是8.X的版本,如果想使用Tomcat8.X的插件可以去其他第三方仓库进行寻找,或者使用IDEA集成外部Tomcat8极其以上版本,进行项目的发布。

5.2 导入依赖

maven仓库: https://mvnrepository.com/
导入依赖坐标,无需手动导入jar包就可以引入jar。在pom.xml中使用标签引入依赖。

5.2.1 导入junit的依赖

  • 导入junit坐标依赖
<dependency>
    <groupId>junitgroupId>
    <artifactId>junitartifactId>
    <version>3.8.1version>
    <scope>testscope>
dependency>
  • 进行单元测试
import org.junit.Test;

public class DemoTest {
    @Test
    public void test1(){
        System.out.println("test running...");
    }
}

5.2.2 导入servlet的依赖

  • 创建Servlet,但是发现报错,原因是没有导入Servlet的坐标依赖

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第37张图片

  • 导入Servlet的坐标依赖
<dependency>
    <groupId>javax.servletgroupId>
    <artifactId>servlet-apiartifactId>
    <version>2.5version>
dependency>
  • 原有报错的Servlet恢复正常

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第38张图片

5.3 依赖范围

Maven基础——概述、安装、命令、依赖管理、IDEA创建Maven工程_第39张图片

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

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

  • provided 编译、和测试有效,A在编译和测试时需要B

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

    不会打到war

  • runtime:测试、运行有效

    例如:jdbc驱动包 ,在开发代码中针对java的jdbc接口开发,编译不用

    在运行和测试时需要通过jdbc驱动包(mysql驱动)连接数据库,需要的

    会打到war

  • test:只是测试有效,只在单元测试类中用

    例如:junit

    不会打到war

  • 按照依赖强度,由强到弱来排序:(理解)

    compile> provided> runtime> test

你可能感兴趣的:(Maven,maven概述,maven安装,maven常用命令,maven依赖管理,IDEA创建maven工程)