maven

 

 

第一节 为什么要学习Maven?

1、从『构建』角度解释

①个人开发流程

./images

②团队开发流程

./images

引申:更大范围内的团队协作

./images

# 2、从『依赖』角度解释

# ①jar包的规模

随着我们使用越来越多的框架,或者框架封装程度越来越高,项目中使用的jar包也越来越多。项目中,一个模块里面用到上百个jar包是非常正常的。

./images

# ②jar包的来源

  • 这个jar包所属技术的官网。官网通常是英文界面,网站的结构又不尽相同,甚至找到下载链接还发现需要通过特殊的工具下载。

  • 第三方网站提供下载。问题是不规范,在使用过程中会出现各种问题。

    • jar包的名称
    • jar包的版本
    • jar包内的具体细节

# ③jar包之间的依赖关系

框架中使用的jar包,不仅数量庞大,而且彼此之间存在错综复杂的依赖关系。依赖关系的复杂程度,已经上升到了完全不能靠人力手动解决的程度。另外,jar包之间有可能产生冲突。进一步增加了我们在jar包使用过程中的难度。

到目前为止,我们熟悉的jar包之间依赖关系有下面这些例子:

  • junit-4.12依赖hamcrest-core-1.3
  • thymeleaf-3.0.12.RELEASE依赖ognl-3.1.26
    • ognl-3.1.26依赖javassist-3.20.0-GA
  • thymeleaf-3.0.12.RELEASE依赖attoparser-2.0.5.RELEASE
  • thymeleaf-3.0.12.RELEASE依赖unbescape-1.1.6.RELEASE
  • thymeleaf-3.0.12.RELEASE依赖slf4j-api-1.7.26

而实际上jar包之间的依赖关系是普遍存在的,如果要由程序员手动梳理无疑会增加极高的学习成本,而这些工作又对实现业务功能毫无帮助。

 

第一章-Maven相关的概念

知识点-Maven介绍

1.目标

  • 能够了解Maven的作用

2.路径

  • 什么是Maven

  • Maven的作用

  • Maven的好处

3.讲解

3.1什么是Maven

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

说白了: Maven是由Apache开发的一个工具。用来管理java项目(依赖(jar)管理, 项目构建, 分模块开发 ,管理项目的生命周期).

3.2Maven的作用

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

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

  • maven对工程分模块构建,提高开发效率。 (后面Maven高级会涉及)

3.3 Maven的好处

  • 使用普通方式构建项目

使用Maven构建项目

4.小结

  1. Maven是Apache开发的一个项目管理工具. 用来管理java项目的

  2. Maven的作用

    • 使用maven创建项目

    • 管理项目生命周期

    • 引入依赖(jar包)

    • 分模块构建项目(后面学)

第二节 什么是Maven?

Maven是Apache软件基金会组织维护的一款专门为Java项目提供构建和依赖管理支持的工具。

./images

# 1、构建

Java项目开发过程中,构建指的是使用『原材料生产产品』的过程。

  • 原材料

    • Java源代码

    • 基于HTML的Thymeleaf文件

    • 图片

    • 配置文件

    • # ……
  • 产品

    • 一个可以在服务器上运行的项目

构建过程包含的主要的环节:

  • 清理:删除上一次构建的结果,为下一次构建做好准备
  • 编译:Java源程序编译成*.class字节码文件
  • 测试:运行提前准备好的测试程序
  • 报告:针对刚才测试的结果生成一个全面的信息
  • 打包
    • Java工程:jar包
    • Web工程:war包
  • 安装:把一个Maven工程经过打包操作生成的 jar 包或 war 包安装到Maven仓库
  • 部署:将准备好的jar包或war包部署到服务器上运行

# 2、依赖

如果A工程里面用到了B工程的类、接口、配置文件等等这样的资源,那么我们就可以说A依赖B。例如:

  • junit-4.12依赖hamcrest-core-1.3
  • thymeleaf-3.0.12.RELEASE依赖ognl-3.1.26
    • ognl-3.1.26依赖javassist-3.20.0-GA
  • thymeleaf-3.0.12.RELEASE依赖attoparser-2.0.5.RELEASE
  • thymeleaf-3.0.12.RELEASE依赖unbescape-1.1.6.RELEASE
  • thymeleaf-3.0.12.RELEASE依赖slf4j-api-1.7.26

依赖管理中要解决的具体问题:

  • jar包的下载:使用Maven之后,jar包会从规范的远程仓库下载到本地
  • jar包之间的依赖:通过依赖的传递性自动完成
  • jar包之间的冲突:通过对依赖的配置进行调整,让某些jar包不会被导入

# 3、Maven的工作机制

./images

 

第一节 Maven核心程序解压与配置

# 1、解压Maven核心程序

核心程序压缩包:apache-maven-3.5.4-bin.zip,解压到非中文、没有空格的目录。例如:

./images

在解压目录中,我们需要着重关注Maven的核心配置文件:conf/settings.xml

# 2、指定本地仓库

本地仓库默认值:用户家目录/.m2/repository。由于本地仓库的默认位置是在用户的家目录下,而家目录往往是在C盘,也就是系统盘。将来Maven仓库中jar包越来越多,仓库体积越来越大,可能会拖慢C盘运行速度,影响系统性能。所以建议将Maven的本地仓库放在其他盘符下。配置方式如下:

<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
<localRepository>D:\maven-rep1026</localRepository>
 

本地仓库这个目录,我们手动创建一个空的目录即可。

记住:一定要把localRepository标签从注释中拿出来。

注意:本地仓库本身也需要使用一个非中文、没有空格的目录。

# 3、配置阿里云提供的镜像仓库

Maven下载jar包默认访问境外的中央仓库,速度很慢。改成阿里云提供的镜像仓库,访问国内网站,可以让Maven下载jar包的时候速度更快。配置的方式是:将下面mirror标签整体复制到mirrors标签的内部。

<mirrors>
	<mirror>
		<id>nexus-aliyun</id>
		<mirrorOf>central</mirrorOf>
		<name>Nexus aliyun</name>
		<url>http://maven.aliyun.com/nexus/content/groups/public</url>
	</mirror>
</mirrors>
 

# 4、配置Maven工程的基础JDK版本

如果按照默认配置运行,Java工程使用的JDK版本是1.5。配置的方式是:将profile标签整个复制到profiles标签内。

<profiles>
	<profile>
	  <id>jdk-1.8</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>
</profiles>
 

 

 

4.小结

  1. 注意事项

    • Maven安装包仓库 都需要解压到一个==没有中文和空格==的目录下(建议解压到不同的目录)

    • 配置

      • MAVEN_HOME 配置到Maven的解压目录

      • Path 配置到bin目录

    • apache-maven-3.3.9\conf\settings.xml配置本地仓库

第二节 配置环境变量

# 1、检查JAVA_HOME配置是否正确

Maven是一个用Java语言开发的程序,它必须基于JDK来运行,需要通过JAVA_HOME来找到JDK的安装位置。

./images

可以使用下面的命令验证:

C:\Users\Administrator>echo %JAVA_HOME%
D:\software\Java

C:\Users\Administrator>java -version
java version "1.8.0_141"
Java(TM) SE Runtime Environment (build 1.8.0_141-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.141-b15, mixed mode)
 

# 2、配置MAVEN_HOME

./images

配置环境变量的规律:

XXX_HOME指向的是bin目录的上一级

PATH指向的是bin目录

# 3、配置PATH

./images

# 4、验证

C:\Users\Administrator>mvn -v
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
Maven home: D:\software\apache-maven-3.5.4\bin\..
Java version: 1.8.0_141, vendor: Oracle Corporation, runtime: D:\software\Java\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

 

 

知识点-IDEA集成Maven(很重要)

1.目标

  • 能够掌握IDEA配置本地Maven

2.路径

  1. 在IDEA配置Maven

  2. 配置默认的Maven环境

3.讲解

3.1配置Maven

  • 配置Maven

配置参数(解决创建慢的问题) -DarchetypeCatalog=internal

  • 然后新创建project,一定不要使用原来的project,要求各位第一次使用maven创建的时候,一定要联网

4.小结

  • 配置默认Maven环境 目的: 为了下次创建的时候 不需要再选择Maven了, 使用的就是这个默认环境的

  • 配置三块

    • maven_home

    • Maven的配置文件

    • 本地仓库的路径

第三章-使用IDEA创建Maven工程

实操-创建javase工程

1.目标

  • 能够使用IDEA创建javase的Maven工程

2.路径

  1. 创建java工程

  2. java工程目录结构

  3. 编写Hello World!

3.讲解

3.1创建java工程

3.2 java工程目录结构

  • 需要main/java文件夹变成 源码的目录(存放java源码)

 

  • 需要test/java文件夹变成 测试源码的目录(存放单元测试)

  • 创建resources目录, 变成资源的目录

  • 整体结构

3.3 编写Hello World!

4.小结

  1. JavaSe工程的骨架

  1. 项目的结构

 

posted @ 2021-07-05 20:16  星梦泪痕  阅读(89)  评论(0编辑  收藏  举报