一、Maven 的安装和配置
1. Maven 安装
安装条件: Maven 需要本机安装 java 环境、必需包含 java_home 环境变量!
软件安装: 右键解压即可(绿色免安装)
软件结构:
bin:含有 Maven 的运行脚本
boot:含有 plexus-classworlds 类加载器框架
conf:含有 Maven 的核心配置文件
lib:含有 Maven 运行时所需要的 Java 类库
LICENSE、NOTICE、README.txt:针对 Maven 版本,第三方软件等简要介绍
2. Maven 环境配置
- 配置 MAVEN_HOME
- 配置 Path
- 命令测试(cmd 窗口)
mvn -v
输出版本信息即可,如果错误,请仔细检查环境变量即可!
3. Maven 功能配置
我们需要需改 maven/conf/settings.xml 配置文件,来修改 maven 的一些默认配置。我们主要休要修改的有三个配置:
1.依赖本地缓存位置(本地仓库位置)
2.maven 下载镜像
3.maven 选用编译项目的 jdk 版本
配置本地仓库地址
java
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
<!-- conf/settings.xml 55行 -->
<localRepository>D:/tools/repo</localRepository>
配置国内阿里镜像
java
<!--在mirrors节点(标签)下添加中央仓库镜像 160行附近-->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
配置 jdk8 版本项目构建
java
<!--在profiles节点(标签)下添加jdk编译版本 268行附近-->
<profile>
<id>jdk-8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>8</jdk>
</activation>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<maven.compiler.compilerVersion>8</maven.compiler.compilerVersion>
</properties>
</profile>
4. IDEA 配置本地 Maven 软件
我们需要将配置好的 maven 软件,配置到 idea 开发工具中即可! 注意:idea 工具默认自带 maven 软件,
但是因为没有修改配置,建议替换成本地配置好的 maven!
选择本地 maven 软件
注意:
如果本地仓库地址不变化,只有一个原因,就是 maven/conf/settings.xml 配置文件编写错误!仔细检查即可!
一定保证User settings file对应之前修改的settings.xml 的路径,若不一致,选中 Override 复选框,手动选择配置文件
二、基于 IDEA 创建 Maven 工程
1. Maven 工程的 GAVP 介绍
Maven 工程相对之前的项目,多出一组 gavp 属性,gav 需要我们在创建项目的时候指定, p 有默认值,我们先行 了解下这组属性的含义:
Maven 中的 GAVP 是指 GroupId、ArtifactId、Version、 Packaging 这四个属性的缩写,其中前三个是必要的,而 Packaging 属性为可选项。这四个属性主要为每个项目在 maven 仓库中做一个标识,类似人的姓-名!有了具体标 识,方便后期项目之间相互引用依赖等!
GAV 遵循以下规则:
GroupID 格式 :com.{公司/BU }.业务线.[子业务线],最多 4 级
说明:{公司/BU} 例如: alibaba/taobao/tmall/aliexpress 等 BU 一级;子业务线可选。
正例: com.taobao.pay 或 com.alibaba.sourcing.multilang ArtifactID 格式:产品线名-模块名
正例:tc-client / uic-api / tair-tool / bookstore
Version 版本号格式推荐:主版本号.次版本号.修订号
主版本号:当做了不兼容的 API 修改,或者增加了能改变产品方向的新功能。 。 次版本号:当做了向下兼容的功能性新增(新增类、接口等)。
修订号:修复 bug,没有修改方法签名的功能加强,保持 API 兼容性。 。 例如: 初始→ 1.0.0 修改bug → 1.0.1 功能调整 → 1.1.1等
Packaging 定义规则:
指示将项目打包为什么类型的文件, idea 根据 packaging 值,识别 maven 项目类型! . packaging 属性为 jar (默认值),代表普通的 Java 工程,打包以后是 .jar 结尾的文件。
packaging 属性为 war ,代表 Java 的 web 工程,打包以后 .war 结尾的文件。 . packaging 属性为 pom ,代表不会打包,用来做继承的父工程。
2. IDEA 构建 Maven Java SE 工程
创建工程之后,若第一次使用 maven ,或者使用的是新的本地仓库 ,idea 右下角会出现以下进度条,表示 maven 正在下载相关插件,等待下载完毕,进度条消失即可。
3. IDEA 构建 Maven Java Web 工程
3.1 手动方式创建
第一步:创建一个 maven 的 javase 工程
第二步: 修改 pom.xml 文件打包方式(修改位置:项目下/pom.xml)
第三步: 设置 web 资源路径 和 web.xml 路径
然后点击 OK 即可。 最后的效果:
webapp 目录上必须出现小圆圈,否则表示创建失败,需要删掉重来一次。
然后 WEB-INF 以及 web.xml 自己从之前的 JavaWeb 项目中复制一个粘贴进来即可。
3.2 插件方式创建
第一步:安装插件 JBLJavaToWeb
file / settings / plugins / marketplace
第二步: 创建一个 javase maven工程
第三步: 右键--->使用插件快速补全 web 项目(如果你的 IDEA 中没有出现下图这个菜单选项,很可能是你的 JDK 版本太低了,最起码 JDK8 是不行的)
4. Maven 工程项目结构说明
Maven 是一个强大的构建工具,它提供一种标准化的项目结构,可以帮助开发者更容易地管理项目的依赖、构 建、测试和发布等任务。以下是 Maven Web 程序的文件结构及每个文件的作用:
pom.xml: Maven 项目管理文件,用于描述项目的依赖和构建配置等信息。 . src/main/java:存放项目的 Java 源代码。
src/main/resources :存放项目的资源文件,如配置文件、静态资源等。 . src/main/webapp/WEB-INF:存放 Web 应用的配置文件。
src/main/webapp/index.jsp:Web 应用的入口页面。 . src/test/java :存放项目的测试代码。
src/test/resources :存放测试相关的资源文件,如测试配置文件等。
三、基于 IDEA 进行 Maven 工程构建
1. 构建概念和构建过程
项目构建是指将源代码、依赖库和资源文件等转换成可执行或可部署的应用程序的过程,在这个过程中包括编译源 代码、链接依赖库、打包和部署等多个步骤。
项目构建是软件开发过程中至关重要的一部分,它能够大大提高软件开发效率,使得开发人员能够更加专注于应用 程序的开发和维护,而不必关心应用程序的构建细节。
同时,项目构建还能够将多个开发人员的代码汇合到一起,并能够自动化项目的构建和部署,大大降低了项目的出 错风险和提高开发效率。常见的构建工具包括 Maven、Gradle、Ant 等。
2. 命令方式项目构建
|-------------|----------------------|
| 命令 | 描述 |
| mvn compile | 编译项目,生成 target 目录 |
| mvn package | 打包项目,生成 jar 或 war 文件 |
| mvn clean | 清理编译或打包后的项目结构 |
| mvn install | 打包后上传到 maven 本地仓库 |
| mvn deploy | 只打包,上传到 maven 私服仓库 |
| mvn site | 生成站点 |
| mvn test | 执行测试源码 |
war 包打包插件和 jdk 版本不匹配: pom.xml 添加以下代码即可
命令触发练习:
3. 可视化方式项目构建
注意:打包(package)和安装(install)的区别是什么 打包是将工程打成 jar 或 war 文件,保存在 target 目录下
安装是将当前工程所生成的 jar 或 war 文件,安装到本地仓库,会按照坐标保存到指定位置