整体介绍
◆介绍Maven的核心特性 ◆掌握Maven的依赖管理 ◆掌握Maven的打包方式
Maven介绍
◆Maven是项目管理工具,对软件项目提供构建与依赖管理 ◆Maven是Apache下的Java开源项目 ◆Maven为Java项目提供了统一的管理方式,已成为业界标准
不同编译器有自己的web结构标准,如何互相转换导入?使用maven
Maven核心特性
项目设置遵循统一的规则,保证不同开发环境的兼容性 强大的依赖管理,项目依赖组件自动下载、自动更新
可扩展的插件机制,使用简单,功能丰富
Maven的安装与配置
Maven – Download Apache Maven 压缩包解压到任意目录 bin:可执行文件夹 boot:引导文件夹 conf:配置文件夹 lib:相关依赖包文件夹 在bin文件夹下有mvn.cmd
D:\JDK\apache-maven-3.8.6\bin添加到环境变量 在JAVA领域版本规则:如1.1.2,最后一位代表小版本,比如修复bug,某些次要功能的升级扩展,中间部分是主要功能有了升级扩展,第一位代表版本有了革命性变换,产生产品迭代,RELEASE代表生厂商给用户可使用的最终版,SNAPSHOT代表快照,表示版本还不够成熟,还有ALPHA代表内测版本,BETA代表公测版本
src下有main目录和test目录,main代表用户编写,而test表示用户测试java文件用的,发布时test文件不发布 pom.xml是核心配置文件 运行后产生target目录,第一个classes是编译后的字节码文件。而第二个文件是源代码文件,程序运行时是字节码文件夹里的文件,而且也会把main里resources文件夹下的文件运行到字节码文件下,运行前的文件进行分类使用,运行后的文件统一到字节码文件夹下统一管理
Maven依赖管理
◆Maven利用dependency(依赖)自动下载、管理第三方Jar ◆在pom.ml文件中配置项目依赖的第三方组件 ◆maven自动将依赖从中央仓库下载至本地仓库,并在工程中引用
Maven的依赖坐标系
◆Groupld:机构或者团体的英文,采用”逆向域名”形式书写 ◆Artifactid:项目名称说明其用途,例如:cms、oa ◆Version:版本号,一般采用”版本+单词”形式,例如:1.0.0.RELEASE
如何知道项目名称? Maven Central Repository Search 根据上面的以来坐标系按照格式添加后,需要刷新重新加载项目 Maven中央仓库在国外,国内与国外通信不畅,导致notfound,需要添加阿里镜像 仓库服务 (aliyun.com)
Maven本地仓库与中央仓库
在本地仓库查找,如果没有就前往中央仓库下载到本地仓库 可以在idea中自定义本地仓库位置
引入一个依赖,可能会下载下来多个依赖,因为下载的这个依赖可能需要其它依赖组件 右键点击图→查看依赖,即可看到依赖关系
在本地仓库以.pom为后缀的文件中,用编辑器打开,也可通过xml语法格式查看到依赖的其它组件
在外部库中可以点击击相应的jar包依赖查看代码,但是是反编译后的,不宜阅读,可以点击右上角download source查看 也可以自己下载源代码注解等查看
仓库中生成javadoc与source文件
Maven构建生命周期
在Maven项目的资源管理器中,在地址栏输入cmd.exe,输入mvn+上表命令,即可对应相应功能 输入 mvn compiled 如果出现编码GBK不可映射的字符,需要在pom.xml的<properties>的标签中添加
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
观察idea项目文件出现target文件夹,可以得出结论idea运行Maven项目的底层原理还是这些mvn的命令 点击右侧栏上的Maven,可以看到相应的生命周期间的命令。点击这些命令和在cmd运行也一样
clean命令是清除target输出目录,还有执行后面命令的时候会将前面的命令一并执行,比如点击compile命令,前面的clean和validate会依次执行
install命令是将前面的打包(package)安装在本地
Maven插件技术
◆Maven插件为构建项目提供了功能扩展的能力 ◆maven-assembly-plugin是Maven打包插件,用于构建FatJar ◆FatJar是指将所有依赖包装为独立可运行的FatJa
我们开发的项目需要依赖大量的第三方Jar包,不利于维护项目 FatJar技术将所有第三方依赖以及字节码文件打包成一个可运行Jar包文件 用于脱离开发环境进行独立运行
连接mysql的jar包—mysql co nnector java
使用package打包的jar无法独立运行,在cmd运行java -jar jar包名
,报错无法运行,所以需要使用FatJar技术
在pom.xml新增build标签:
如果下载失败,添加阿里云镜像:
在Java文件中,不知道哪一个java类是入口类,所以还要在pom.xml中设置入口类 添加<configuration>标签 然后添加FatJar,使用<descriptorRefs>标签 最后在右侧栏的Maven中找到项目,点击插件,进行运行
在浏览器解压FatJar包,看到依赖的jar包都已经解压然后和项目一起整合成一个大的Jar包 cmd运行成功:
Maven属性管理
第一行表示按照UTF-8读取java文件,第二行代表按照JDK 1.8的语法检查代码,第三行表示采用JDK 1.8编译字节码文件
属性里还可以添加依赖管理,免得依赖太多,难以管理
下面的<dependencies>标签里的依赖配置使用${}方式引用
如果需要更改版本号,只需要在这里集中管理更改即可