Maven
Maven
Maven是一款Java项目构建管理、依赖管理的工具
在学习前端工程化时,我们接触到了npm&node.js,maven就相当于后端的项目管理,依赖管理的软件
同样的,Maven也有两个核心功能:
- 依赖管理
- 构建管理
构建这个词对于我们来说并不陌生,但不同的平台中,项目结构并不相同
比如idea和eclipse的项目结构就不同
为了解决这个问题,我们使用Maven来构建项目,让idea就作为编辑器使用,就可以解决项目结构不同的问题
Maven的安装
注:Maven3.9.x需要JDK8以上的支持
Maven在解压完成后,同样需要配置环境变量Maven_HOME 和 PATH
Maven的配置
在安装Maven之后,我们需要修改Maven的配置文件的以下三项:
- 依赖本地缓存位置
- Maven下载镜像
- Maven选用编译项目的JDK版本
在学习过Node.js之后,这些知识点的掌握则不在困难
配置文件地址: maven/conf/settings.xml
依赖本地缓存位置
maven的默认依赖缓存位置时用户文件夹下的.m2文件夹中
我们可以通过修改配置文件实现修改缓存地址
在大概50行中的localRepository
<!-- 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:\.m2\repository</localRepository>
配置阿里镜像
和npm相同,maven的中央仓库同样在国外,我们可以修改为阿里的仓库
在大概160行中的mirrors标签中
<mirrors>
……
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
……
</mirrors>
配置JDK编译版本
在大概200行左右的profiles的标签中
<profiles>
……
<profile>
<id>jdk-17</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>17</jdk>
</activation>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
</properties>
</profile>
……
</profiles>
idea
在idea中,他自带了最新版本的Maven,我们可以通过修改设置的方式配置成自己的Maven
设置 -> 构建、执行、部署 -> 构建工具 -> Maven -> Maven主路径
GAVP
Maven工程会多出一组gavp属性,gav需要我们在创建项目时指定,p有默认值,后期可以通过配置文件修改
gav是用来标识项目,类似人的姓、名组成的方式
- GroupID:com.公司名.业务线.子业务线 例如:com.xiaobai.java,一般不超过四级
- ArtifactID:产品线名 例如:top-news
- Version:版本号
- 主版本号:当做了不兼容的API修改,或者增加了改变产品方向的新功能
- 次版本号:当做了向下兼容的功能性新增
- 修订号:修复bug,没有修改方法签名的功能加强,保持API兼容性
- Packaging:项目的包格式
- jar:默认值,代表普通的Java工程
- war:代表Java的web工程
- pom:代表不会打包,用来做继承的父工程
artifact中文释义:人工制品,手工艺品
pom.xml
在新建好Maven项目之后,项目中会存在src文件夹和pom.xml文件
这个文件就是对Maven的配置文件
<?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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xiaobai</groupId>
<artifactId>maven-javaee-project</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>
JavaWeb项目
我们可以通过手动的方式去创建maven工程下的JavaWeb项目
- 建立项目结构
src -> main -> webapp -> WEB-INF -> web.xml
- 在pom.xml中改变打包类型为war
<packaging>war</packaging>
刷新maven工程之后,当webapp的图标上出现小蓝点即完成创建
JBLJavaToWeb
使用此插件可快速创建maven工程下的JavaWeb项目
Maven项目结构
Project Object Model 项目对象模型
- pom.xml:maven的配置文件
- src:项目的源文件
- main:程序的主代码
- java:java源代码
- resources:存放项目资源文件
- webapp:存放web相关配置和资源
- test:项目的测试代码
- java:单元测试目录
- 测试资源目录
- main:程序的主代码
maven工程的JavaWeb其实和普通项目的JavaWeb项目结构大同小异,在使用中并没有很大的区别