Maven的了解与使用

一、Maven介绍

1.1什么是Maven

Maven 是一种软件项目管理工具

1.2 Maven能做什么?

1.管理整个软件开发周期 --(编译、测试、打包、安装、部署等)

2.帮助构建项目 开发人员只需要描述项目基本信息在一个配置文件中:pom.xml。

此外还提供了:

1 声明式依赖性管理

2 集中的组件库管理

3 文档的自动生成

4 报告的自动生成

设计原则:Convention Over Configuration (约定优于配置)

Maven的一个核心特性就是依赖管理。

另一个则是项目的一键构建 构建 指的是项目从编译、测试、运行、打包、安装 ,部署整个过程都交给maven进行管理,这个过程称为构建。

一键构建 指的是整个构建过程,使用maven一个命令(install)可以轻松完成整个工作。

常用命令:(熟悉,关键字,借助idea开发时能认识,点击操作界面中的命令就好) ​

清理命令(clean)(清除编译生成的out或target目录) mvn clean ​

编译命令(compiler)(将源代码文件变成class文件,生成target目录)mvn compile ​

打包命令(package)(将项目打包为jar或war)mvn package ​

部署命令(install)(包含前面所有过程命令) mvn install

安装时跳过测试: mvn install -Dmaven.test.skip=true

二、 Maven的使用

安装、配置环境

2.1 Maven仓库

远程仓库:相当于互联网上的仓库

远程仓库:一般需要外网访问

私服:一般都是基于局域网访问

本地仓库:本地文件夹

2.2 依赖添加运行流程:

Maven项目在pom.xml文件中添加jar依赖坐标时,会先从本地仓库查找判断是否存在,如果没有指定坐标的jar,那么就到配置文件(安装包的conf目录中的settings.xml)中配置的远程仓库(默认配置的是中央仓库,也就是Maven公司的jar仓库)中下载,下载成功后将jar添加到本地仓库缓存(下次在其他项目中添加依赖时,就可以直接引用),然后引用到项目中

仓库配置

本地仓库

在某盘中新建一个文件夹,用作本地仓库,然后再maven的安装目录下打开settings.xml文件,配置该文件夹的路径

例如: <localRepository>F:/localRepository</localRepository>

远程仓库

打开settings.xml配置如下:

<mirror>

<id>alimaven</id>

<name>aliyun maven</name>

<url>https://maven.aliyun.com/nexus/content/repositories/central/\</url>

<mirrorOf>central</mirrorOf>

</mirror>

目录结构

src/main/java ------ 在该目录下新建包,存放项目的.java文件(文件一定存放在包中) src/main/resources ------ 存放项目资源文件,如spring, mybatis配置文件,以及其他静态资源文件(.css/.js.....)

src/main/webapp------ 存放项目的web资源(纯Java项目可以没有该目录),如web.xml,jsp,web-info等

src/test/java ------ 存放所有单元测试.java文件,如JUnit测试类

src/test/resources ------ 测试资源文件(该目录一般不需要)

target ------ (该目录由Maven自动运行时生成)项目输出位置,编译后的class文件会输出到此目录,等同于一阶段out目录

pom.xml------(该文件由idea创建项目时生成)maven项目核心配置文件,配置项目依赖(jar)的坐标,其他插件
**注意:项目中的目录命名的固定的,手动添加目录时不能自定义名称,注意大小写!

maven的概念模型

坐标标签模板:

dependency:依赖

group:组织

artifact:模块

version:版本号

scope:作用域,用于明确jar添加的时机

例:

java 复制代码
<dependency>
		<groupId>jar的组织名称(组织名称可以是多级目录,目录使用.分层)</groupId>
		<artifactId>jar的模块名称(单级名称)</artifactId>
		<version>jar的版本号(单级数字目录名)</version>
		<scope>jar的依赖范围(一般不需要配置,只有个别需要配置)</scope>
	</dependency>

依赖范围:

默认引入 的jar包 ------- compile 【默认范围 可以不写】(编译、测试、运行 都有效 )

servlet-api 、jsp-api ------- provided(编译、测试 有效, 运行时无效 防止和tomcat下jar冲突)

数据库驱动jar包 ---- runtime(测试、运行 有效 )

junit ----- test (测试有效)

依赖范围由强到弱的顺序是:compile>provided>runtime>test

设置jdk编译版本

插件配置

java 复制代码
插件配置                                                                                                               <plugins>
		<!-- 依赖插件 -->
		       <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>          

Tomcat插件:

java 复制代码
<plugin>
  <groupId>org.apache.tomcat.maven</groupId>
  <artifactId>tomcat7-maven-plugin</artifactId>
  <version>2.2</version>
  <!-- 插件配置选项,可选项 -->
  <configuration>
    <path>/</path>
    <port>8080</port>
    <uriEncoding>UTF-8</uriEncoding>
  </configuration>
</plugin>

三、 Maven的使用(重要)

3.1 Maven的安装

3.1.1 Maven软件的下载

为了使用Maven管理工具,我们首先要到官网去下载它的安装软件。通过百度搜索"Maven"如下:

点击Download链接,就可以直接进入到Maven软件的下载页面:

目前最新版是apache-maven-3.8.X版本

因为3.6.0以上版本存在和idea2018的兼容问题,所以本阶段使用3.6.0版本作为项目管理工具

Apache-maven-3.6.0下载地址:Index of /dist/maven/maven-3

2.1.2 Maven软件的安装

Maven下载后,将Maven解压到一个没有中文,没有空格 的路径下,比如F:\software_java\apache-maven-3.6.0下面。 解压后目录结构如下:

bin:存放了maven的命令,比如我们前面用到的mvn tomcat:run boot:存放了一些maven本身的引导程序,如类加载器等 conf: 存放了maven的一些配置文件,如settings.xml文件 lib:存放了maven本身运行所需的一些jar包 至此我们的maven软件就可以使用了,前提是你的电脑上之前已经安装并配置好了JDK。

2.1.3 JDK的准备及统一( 已有,就跳过)

我们所使用工具软件的统一,JDK使用JDK8版本

JDK环境:省略......

2.1.4 Maven配置

电脑上需安装java环境,安装JDK1.7 + 版本 (将JAVA_HOME/bin 配置环境变量path ),我们使用的是JDK8相关版本

配置 MAVEN_HOME(可选) ,变量值就是你的maven安装 的路径(bin目录之前一级目录)

在Path中添加:%MAVEN_HOME%\bin

上面配置了我们的Maven软件,注意这个目录就是之前你解压maven的压缩文件包在的的目录,最好不要有中文和空格。 再次检查JDK的安装目录,如下图:

2.1.5 Maven软件版本测试

通过 mvn -v命令检查 maven是否安装成功,看到maven的版本为3.6.2及java版本为1.8即为安装成功。 找开cmd命令,输入mvn --v 命令,如下图:

我们发现maven的版本,及jdk的版本符合要求,这样我们的maven软件安装就成功了。

案例:

例如:

pom.xml文件

java 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<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>org.example</groupId>
    <artifactId>day24_1</artifactId>
    <version>1.0-SNAPSHOT</version>

    <packaging>war</packaging>

    <build>
        <plugins>
            <!-- 依赖插件 -->
            <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>

            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <!-- 插件配置选项,可选项 -->
                <configuration>
                    <path>/</path>
                    <port>8080</port>
                    <uriEncoding>UTF-8</uriEncoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

</project>

index.html文件

java 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
哈喽 哈喽

</body>
</html>

web.xml文件

java 复制代码
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">


</web-app>
相关推荐
xlsw_31 分钟前
java全栈day20--Web后端实战(Mybatis基础2)
java·开发语言·mybatis
神仙别闹1 小时前
基于java的改良版超级玛丽小游戏
java
黄油饼卷咖喱鸡就味增汤拌孜然羊肉炒饭2 小时前
SpringBoot如何实现缓存预热?
java·spring boot·spring·缓存·程序员
暮湫2 小时前
泛型(2)
java
超爱吃士力架2 小时前
邀请逻辑
java·linux·后端
南宫生2 小时前
力扣-图论-17【算法学习day.67】
java·学习·算法·leetcode·图论
转码的小石2 小时前
12/21java基础
java
李小白662 小时前
Spring MVC(上)
java·spring·mvc
GoodStudyAndDayDayUp3 小时前
IDEA能够从mapper跳转到xml的插件
xml·java·intellij-idea
装不满的克莱因瓶3 小时前
【Redis经典面试题六】Redis的持久化机制是怎样的?
java·数据库·redis·持久化·aof·rdb