Maven是一种项目管理、依赖管理、项目构建的工具,可以进行自动化构建、测试、打包和发布项目。
依赖管理
随着项目引入jar包的增多,我们需要对其进行管理,包括jar包之间的版本依赖管理,这是比较复杂的。
通过Maven,我们可以轻松的解决jar包之间的依赖关系管理问题,极大地减轻工作量。
Maven 可以从仓库中自动下载所需依赖库,并对依赖版本进行管理,处理依赖版本冲突等。
构建管理
开发中,一般通过IDE进行项目的构建,如果脱离的IDE,我们可以通过Maven进行项目的构建操作。
项目构建是指将源代码、配置文件、资源文件等打包为可执行应用的过程。Maven 可以通过标准的构建生命周期来管理项目的编译、测试、打包、部署等构建过程。
插件
可以通过Maven插件对构建过程进行扩展和定制。
在Maven下载Maven最新的安装包,也可以在history下载历史版本。
介绍Window版本安装
只需要解压到指定路径即可,新建Maven环境变量MAVEN_HOME,然后配置环境变量Path即可。此时可以在命令行窗口通过mvn -v
查看安装的Maven版本信息。
安装完成之后,需要对Maven进行一些配置,配置文件为Maven安装路径下conf/settings.xml,主要配置以下内容即可:
<!-- 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:/DevRepository/repo</localRepository>
<!--在mirrors标签下配置中央仓库镜像-->
<mirror>
<id>alirepo</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<profile>
<id>jdk17</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>
<encoding>UTF-8</encoding>
</properties>
</profile>
<servers>
<server>
<id>nexus-mine</id>
<username>giser</username>
<password>123456</password>
</server>
</servers>
在"IntelliJ IDEA-File-Settings-Build,Execution,Deployment-Build Tools-Maven"下:
C:/DevProgramFiles/Java/apache-maven-3.6.1
C:\DevProgramFiles\Java\apache-maven-3.6.1\conf\settings-jdk17.xml
D:\DevRepository\repo
bin:Maven运行脚本
boot:含有plexus-classworlds类加载器框架
conf:含有Maven的核心配置文件
lib:含有Maven运行时所需要的Java类库
LICENSE、NOTICE、README.txt:针对Maven版本,第三方软件等简要介绍
Maven提供一种标准化的项目结构,可以帮助开发者更容易地管理项目的依赖、构建、测试和发布等任务。
|-- pom.xml # Maven项目管理文件
|-- src
|-- main # 项目主要代码
| |-- java # Java 源代码目录
| | -- com/example/myapp # 开发者代码主目录
| | |-- controller # 存放 Controller 层代码的目录
| | |-- service # 存放 Service 层代码的目录
| | |-- dao # 存放 DAO 层代码的目录
| | -- model # 存放数据模型的目录
| |-- resources # 资源目录,存放配置文件、静态资源等
| | |-- log4j.properties # 日志配置文件
| | |-- spring-mybatis.xml # Spring Mybatis 配置文件
| | -- static # 存放静态资源的目录
| | |-- css # 存放 CSS 文件的目录
| | |-- js # 存放 JavaScript 文件的目录
| | -- images # 存放图片资源的目录
| -- webapp # 存放 WEB 相关配置和资源
| |-- WEB-INF # 存放 WEB 应用配置文件
| | |-- web.xml # Web 应用的部署描述文件
| | -- classes # 存放编译后的 class 文件
| -- index.html # Web 应用入口页面
-- test # 项目测试代码
|-- java # 单元测试目录
`-- resources # 测试资源目录