Maven的简单使用

第一章 Maven简介

1.1 简介

  • Maven:怎么读,【妹文,麦文】
  • Maven 翻译为"专家"、“内行”,是 Apache 下的一个纯 Java 开发的开源项目。
  • 基于项目对象模型(缩写:POM, Project Object Model)概念,Maven利用一个中央仓库能管理一个项目的构建、报告和文档等步骤。
  • Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。
  • 官网地址:http://maven.apache.org/

1.2 Maven核心功能

传统项目的问题:

  1. 需要把jar复制到项目中,繁琐
  2. 项目体积更大,不利于维护
  3. 不利于团队开发

Maven主要有两大核心功能:

  1. 依赖管理。(jar包的管理)
  2. 项目构建。(清理、编译、单元测试、打包、安装、部署、运行)

第二章 Maven环境配置

Maven 是一个基于 Java 的工具,所以要做的第一件事情就是安装 JDK。(略)

2.1 下载Maven库

  • 下载地址:http://maven.apache.org/download.cgi
  • 使用版本:apache-maven-3.6.3
    在这里插入图片描述

2.2解压下载库认识Maven库目录

备注:

  1. 解压文件尽量不要放在含有中文或者特殊字符的目录下。
  2. bin:含有mvn运行的脚本
  3. boot:含有plexus-classworlds类加载器框架
  4. conf:含有settings.xml配置文件
  5. lib:含有Maven运行时所需要的java类库 LICENSE.txt, NOTICE.txt, README.txt针对Maven版本,第三方软件等简要介绍

2.3配置Maven环境变量

  1. 右键我的电脑(或者计算机)-属性-高级系统设置-高级-环境变量-系统变量-新建MAVEN_HOME,值为maven的 安装目录
  2. 把%MAVEN_HOME%\bin;追加到Path变量的值后面
  3. 检验是否成功:cmd-> mvn -v 或 mvn -version,mvn help:system
  4. 修改配置文件:maven安装目录下conf目录中settings.xml
    在这里插入图片描述

2.4配置Maven仓库

  • Maven使用仓库管理各种jar包和插件。
  • Maven仓库分为:本地仓库(local)、远程仓库(remote)两大类
  • 本地仓库: 本地电脑中的仓库。默认位置为:${user:home}/.m2/repository
  • 远程仓库: 远程仓库又包括:中央仓库+私服+其它公共远程仓库 (比如阿里、163等)

中央仓库:是maven自带的远程仓库,默认地址:https://repo.maven.apache.org/maven2,由于默认中央仓库的服 务器在国外,下载会比较慢,一般需要配置使用国内的公共远程仓库作为中央仓库镜像. 注意配置了中央仓库镜像就不再走默认中央仓库。
私服:是架设在本机或者局域网中的一种特殊的远程仓库,通过私服可以方便的管理其它所有的外部远程仓库

在maven的conf目录中找到

<!--第一个位置在根节点下添加本地仓库位置-->
<localRepository>D:\Repositories\Maven</localRepository>

<!--第二个位置,在mirrors节点下添加 中央仓库镜像-->
<mirror>
	<id>alimaven</id>
	<name>aliyun maven</name>
	<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
	<mirrorOf>central</mirrorOf>
</mirror>

<!--第三个位置,在profiles节点下添加 jdk版本全局配置,因为默认为1.5-->
<profile>
<id>jdk18</id>
<activation>
	<activeByDefault>true</activeByDefault>
	<jdk>1.8</jdk>
</activation>
<properties>
	<maven.compiler.source>1.8</maven.compiler.source>
	<maven.compiler.target>1.8</maven.compiler.target>
	<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>

检索顺序:先检索本地仓库--再检索远程仓库--最后检索中央仓库 具体可看下图示例
在这里插入图片描述

第三章 Maven入门

3.1Maven程序目录结构

  • 约定大于配置:能使用约定好的方式,就不要配置。
  • 手动创建:
maven_hello
----src
-------main
----------java
-------------com
-----------------bigdata
--------------------maven
-----------------------Hello.java
----------resources 
----------webapp(web项目)
-------test
----------java
-------------com
-----------------bigdata
-------------------test
----------------------HelloTest.java
----------resources
----pom.xml

src/main/java:存放项目的.java文件
src/main/resources:存放项目资源文件。如配置文件
src/test/java:存放所有测试的.java文件.如Junit测试类src/test/resources:测试资源文件
【target:项目输出位置(可以自动生成)】
pom.xml(maven项目核心配置文件)

pom.xml文件如下

<?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">
        
<!--描述这个POM文件是遵从哪个版本的项目描述符-->
<modelVersion>4.0.0</modelVersion>

<!--组织id com.bigdata.maven	GAV坐标  -->
<groupId>com.bigdata.maven</groupId>

<!--项目名 模块名-->
<artifactId>maven_hello</artifactId>

<!--项目版本	SNAPSHOT 快照 不稳定版本	RELEASE 发布版 稳定-->
<version>1.0-SNAPSHOT</version>

<!--打包形式	jar包-->
<packaging>jar</packaging>

<!--依赖-->
<dependencies>
	<dependency>
		<groupId>junit</groupId>
		<artifactId>junit</artifactId>
		<version>4.12</version>
		<scope>test</scope>
	</dependency>

</dependencies>
</project>

使用命令创建maven项目(不作为重点)

mvn archetype:generate -DgroupId=com.bigdata.maven -DartifactId=maven02	-DinteractiveMode=false
-DarchetypeCatalog=internal

举例所用代码:

ackage com.wei.maven;

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello");
    }
}

package com.wei.test;

import org.junit.Test;

public class HelloTest {

    @Test
    public void test1(){
        System.out.println("test1");
    }
}

3.2Maven常见命令

Maven的另一个核心功能是项目构建。
构建包括:清理,编译,测试,打包,安装,部署,运行等。
这些过程都可以使用Maven命令来完成。
每个maven命令都有相对于的插件来完成。

3.2.1 clean

mvn clean:清理(删除)编译的文件
使用插件:maven-clean-plugin:2.5:clean

3.2.2 compile

mvn compile:编译主目录的文件
使用插件:
maven-resources-plugin:2.6:resources 
maven-compiler-plugin:3.1:compile

3.2.3 test

mvn test: 编译并运行test目录的代码
使用插件:
maven-resources-plugin:2.6:resources 
maven-compiler-plugin:3.1:compile
maven-resources-plugin:2.6:testResources 
maven-compiler-plugin:3.1:testCompile 
maven-surefire-plugin:2.12.4:test

3.2.4 package

mvn package:打包项目,jar包或war包
使用插件:
maven-resources-plugin:2.6:resources 
maven-compiler-plugin:3.1:compile
maven-resources-plugin:2.6:testResources 
maven-compiler-plugin:3.1:testCompile 
maven-surefire-plugin:2.12.4:test
maven-jar-plugin:2.4:jar

3.2.5 install

mvn install:安装到仓库
maven-resources-plugin:2.6:resources 
maven-compiler-plugin:3.1:compile
maven-resources-plugin:2.6:testResources 
maven-compiler-plugin:3.1:testCompile 
maven-surefire-plugin:2.12.4:test
maven-jar-plugin:2.4:jar
maven-install-plugin:2.4:install

3.2.6其他命令

mvn deploy:部署,部署到私服
mvn tomcat:run:运行

3.3 Maven构建生命周期

  1. Clean:项目构建前的清理操作
  2. Default(Build): 核心生命周期核心过程:编译,测试,运行,打包等等
  3. Site:项目站点文档创建。

3.4 Maven POM文件

  • POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。
  • 执行任务或目标时,Maven 会在当前目录中查找 POM。它读取 POM,获取所需的配置信息,然后执行目标。POM 中可以指定以下配置:
    • 项目依赖插件
    • 执行目标
    • 项目构建 profile
    • 项目版本
    • 项目开发者列表相关邮件列表信息

基本的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">

	<!-- 模型版本  -->
	<modelVersion>4.0.0</modelVersion>
	<!-- 公司或者组织的唯一标志,并且配置时生成的路径也是由此生成, 如com.companyname.project-group,
	maven会将该项目打成的jar包放本地路径:/com/companyname/project-group -->
	<groupId>com.companyname.project-group</groupId>
	<!-- 项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的 -->
	<artifactId>project</artifactId>
	<!-- 版本号 -->
	<version>1.0-SNAPSHOT</version>
	<!--打包形式 例如jar、war、ear、pom-->
	<packaging>jar</packaging>
</project>

所有 POM 文件都需要 project 元素和三个必需元素:groupId,artifactId,version。这个必须元素叫做坐标
(GAV)

3.5Maven引入外部依赖

  • pom.xml 的 dependencies 列表列出了我们的项目需要构建的所有外部依赖项。
<dependencies>
	<!--坐标GAV-->
	<dependency>
		<groupId>junit</groupId>
		<artifactId>junit</artifactId>
		<version>4.12</version>
		<scope>test</scope>
	</dependency>
</dependencies>

写于2020-10-19

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值