文章摘要
交个朋友
◆ 标准化了 java的工程结构。
◆ 大家都在用 标准的工程结构 来做项目。别人接手的化话也能看懂。🏊
◆ 让 Java 进入标准性 的时代。
◆ 翻译过来 专家
,在java领域 标准化的 工程管理工具。
◆ Apache基金会的顶级开源项目,Maven对项目的管理方式,已成为业界的标杆。
一、第一部分:入门基操
一、Maven的核心特性
◆ 一 、项目设置遵循统一的规则,保证不同开发环境的兼容性
例:eclipse里的项目 可以迁移 至 IDEA 中
◆ 二 、强大的依赖管理,项目依赖组件 自动下载、自动更新
◆ 三 、可扩展的插件机制,使用简单,功能丰富
二、Maven 安装
1、安装
◆ 一 、找到Maven下载地址 阿帕奇 官网
◆ 二、进入下载页面 查看Maven的系统要求, 选择合适的版本 点击下载
◆ 下载完成后 进行解压缩 可以选择解压出的Maven文件夹 把它放在想放的磁盘中
2、Maven 文件夹信息
三、初始化配置 Maven 和 绑定IDEA
1、初始化配置 Maven
◆ 一、进入 Maven的bin目录下 复制绝对路径,添加环境变量 就像配置JDK一样
◆然后新建 赋值路径
◆ 配置好 之后可以检测一下 打开CMD 面板(电脑任务栏里搜索CMD) 之后任意路径下输入 mvn -v 回车 会显示如下
2、绑定IDEA
◆ 以上几个简单步骤 IDEA就绑定好Maven了
四、创建 Maven 工程
◆ 打开IDEA 选择Maven 工程
◆ 点击完成后 ,第一次进入Maven 会自动从阿帕奇的数据中心下载一些插件
1、标准的Maven 工程 包含哪些结构
◆ 如果运行 会自动生成 target 目录
七、Maven 依赖管理
◆ Maven 利用
dependency(依赖)
自动下载、管理第三方jar
◆ 在pom.xml文件中配置项目依赖的第三方组件
◆ Mavne会自动将依赖从 中央仓库 下载至 本地仓库,并在工程中引用
配置如下:👇👇👇
<dependency> 依赖
下面三项 就是Maven的以来坐标系了
<groupid></groupid> 机构或者团体的英文
<artifacatid></artifacatid> 项目名称
<version></version> 版本号
</dependency>
◆如何知道 厂商叫什么 组件的名字 版本号?
该网址可以查询:https://search.maven.org/
找到 对应的依赖以后 可以直接赋值 Maven坐标系 到pom.xml配置文件中。
例如:
然后 点击下载
可以看到左侧新加入的jar包
1、镜像仓库
◆因为中央仓库在国外,所以有的时候下载会很满。这个时候可以在依赖上方加入镜像仓库
例如:阿里云Maven镜像仓库
找到public 公开的 然后复制 阿里云仓库地址
然后 设置 pom.xml 配置文件
<repositories> 仓库
<repository>
<id>aliyun</id>这个仓库的唯一标识
<name>aliyun</name> 此项和上面一项 可以自由填写 URL 不可以
<url>https://maven.aliyun.com/repository/public</url>
</repository>
</repositories>
这样配置好 以后,在pom.xml 文件中 再添加 以来坐标系 会优先从 设置的镜像仓库下载。如果没有才会远程下载。
2、本地仓库 和 中央仓库
◆ 本质:在pom.xml 文件中 增加
dependency(依赖)
◆本地仓库目录 => .m2 目录
◆如果要修改 .m2目录 的 路径 如下操作:在工程找到设置、搜索Maven、修改路径
3、 如果要在下载 依赖时,同时下载 依赖的源代码、java的文档、注解
第二部分:Maven 开发中 的使用
一、Maven构建生命周期
◆像人一样,什么阶段做什么事
◆Maven 有7个阶段
阶段命令 | 用途 |
---|---|
1、validate | 验证项目是否正确且所有信息是否可用 |
2、compile | 源代码编译并生成在target |
3、test | 运行test目录下的测试代码 验证src下源代码的逻辑 |
4、package | 生成产出物jar、war文件 |
5、verify | 验证 上一个阶段产出物是否有效 |
6、install | 安装打包的项目到本地仓库,以供其他项目使用 |
7、deploy | 拷贝最终的工程包到远程仓库中,以共享给其他开发人员 |
◆上面的命令 其实是说 如果项目不在 IDEA中 怎么打包发布项目
1、cmd进入终端 在进入项目文件夹 输入mvn compile
进行编译
2、 输入mvn package
进行打包
◆ 如果在IDEA中
二、Maven 插件
◆为项目提供了功能扩展的能力
例如:maven-assembly-plugin
是第三方 Maven打包插件,用于构建FatJar
FatJar 是将所有依赖 包装为独立运行的Jar
如果下载插件过慢 可以使用 插件仓库
<pluginRepositories>
<pluginRepository>
<id>...</id>
<name>...</name>
<url>...</url>
</pluginRepository>
</pluginRepositories>
用于说明Maven 构建的方式是怎么样的
<build>
<plugins>所有插件的父标签
<plugin>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<configuration> 配置的意思
<archive>如果需要 设置程序入口 下面的标签
<manifest>
<mainClass>com.xxx.xxxx.Test</mainClass>
</manifest>
</archive>
FatJar插件
<descriptorRefs>引用的描述
<descriptorRef>jar-with-dependencies</descriptorRef>固定写死。代表在打包时所有依赖合并到 输出到jar文件中
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
</build>
如果配置成 会出现新的命令:
三、pom.xml文件 的概述
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 根节点 用于描述 Maven 工程
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> 工程模型的版本 Maven 3.0.x版本的统一要求 工程模型版本4.0.0
当前 开发的 Maven工程 的坐标系 用于在本地仓库发布的时候 进行 存储 和定位
<groupId>org.example</groupId>
<artifactId>testWeb-serlet</artifactId>
<version>1.0-SNAPSHOT</version>
Maven 的属性
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
阿里云镜像仓库
<repositories>
<repository>
<id>aliyun</id>
<name>aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</repository>
</repositories>
阿里云Maven 插件 仓库
<pluginRepositories>
<pluginRepository>
<id>aliyun</id>
<name>aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</pluginRepository>
</pluginRepositories>
依赖部分
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
</dependencies>
与插件相关的设置选项
<build>
···
···
···
</build>
</project>
四、Maven 属性
◆放置在
< properties >
标签中的配置项就是 Maven的属性
pom.xml 中的说明性配置
<properties> 说明当前的工程构建时 (Maven在编译读取源码时) 源码的字符集编码采用UTF-8
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>8</maven.compiler.source>jdk源代码语法检查时 按jdk8的规则 检查
<maven.compiler.target>8</maven.compiler.target>在编译生成字节码的时候 采用8 这个编译级别 编译
</properties>
◆Maven的属性 可以为 依赖 提供服务
例如:项目中管理 依赖的版本号
1、在< properties >
标签中 写入自定义属性 => <依赖名.version> 版本号 </依赖名.version>
2、在相关依赖的 < version > 标签中 写入 => < version > ${依赖名.version} < /version >
总结
初衷:自我学习和站内的朋友学习交流。码字不易🐌,如果对您有所帮助不妨点个赞赞吧💖💖💖~
我爱你 ~ 今天想告诉你个秘密,一觉醒来以为是自己长高了,原来是被子盖横了…😷😷😷
🙏愿: 宇宙的尽头没有 应用程序服务器。