Maven简介

1 Maven介绍

1.1 官网地址

Maven

1.2 Maven是什么

Maven是一种项目管理、依赖管理、项目构建的工具,可以进行自动化构建、测试、打包和发布项目。

  • 依赖管理

    随着项目引入jar包的增多,我们需要对其进行管理,包括jar包之间的版本依赖管理,这是比较复杂的。

    通过Maven,我们可以轻松的解决jar包之间的依赖关系管理问题,极大地减轻工作量。
    Maven 可以从仓库中自动下载所需依赖库,并对依赖版本进行管理,处理依赖版本冲突等。

  • 构建管理

    开发中,一般通过IDE进行项目的构建,如果脱离的IDE,我们可以通过Maven进行项目的构建操作。

    项目构建是指将源代码、配置文件、资源文件等打包为可执行应用的过程。Maven 可以通过标准的构建生命周期来管理项目的编译、测试、打包、部署等构建过程。

  • 插件

    可以通过Maven插件对构建过程进行扩展和定制

2 Maven安装和配置

2.1 下载

Maven下载Maven最新的安装包,也可以在history下载历史版本。

2.2 安装

介绍Window版本安装

只需要解压到指定路径即可,新建Maven环境变量MAVEN_HOME,然后配置环境变量Path即可。此时可以在命令行窗口通过mvn -v查看安装的Maven版本信息。

2.3 配置

安装完成之后,需要对Maven进行一些配置,配置文件为Maven安装路径下conf/settings.xml,主要配置以下内容即可:

  • 本地仓库位置
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>
  • 仓库镜像地址
xml 复制代码
<!--在mirrors标签下配置中央仓库镜像-->
<mirror>
    <id>alirepo</id>
    <name>aliyun maven</name>
	<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror>
  • JDK编译版本
xml 复制代码
<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>
  • server配置
    如果用了私服,还需要在servers标签下配置server相关信息,如
xml 复制代码
<servers>
	<server>
	  <id>nexus-mine</id>
	  <username>giser</username>
	  <password>123456</password>
	</server>
</servers>

3 IDEA开发环境配置

在"IntelliJ IDEA-File-Settings-Build,Execution,Deployment-Build Tools-Maven"下:

  • 配置Maven home path
xml 复制代码
C:/DevProgramFiles/Java/apache-maven-3.6.1
  • 配置User settings file
xml 复制代码
C:\DevProgramFiles\Java\apache-maven-3.6.1\conf\settings-jdk17.xml
  • 检查Local repository
    此时应该为settings.xml文件中已经配置的本地仓库位置,如
xml 复制代码
D:\DevRepository\repo

4 Maven目录介绍

text 复制代码
bin:Maven运行脚本
boot:含有plexus-classworlds类加载器框架
conf:含有Maven的核心配置文件
lib:含有Maven运行时所需要的Java类库
LICENSE、NOTICE、README.txt:针对Maven版本,第三方软件等简要介绍

5 IDEA中创建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:存放测试相关的资源文件,如测试配置文件等。
xml 复制代码
|-- 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                     # 测试资源目录
相关推荐
AC赳赳老秦13 分钟前
OpenClaw 多源采集公开行业数据:从原始信息到研究报告初稿的自动化实践
java·c语言·c++·python·php·deepseek·openclaw
典典分享指南30 分钟前
用指纹算法给文章去重:mid_signature 实战
jvm·maven·intellij-idea·jetty
Java成神之路-37 分钟前
深入理解三大高频队列:ArrayDeque、LinkedList、PriorityQueue 方法、特性与场景选择
java
roman_日积跬步-终至千里1 小时前
【资源控制】自助查询的智能路由
java·大数据·数据库
步行cgn1 小时前
MyBatis Error evaluating expression ‘ids‘. Return value (3) was not iterable 错误详
java·后端
lhldsg1 小时前
社区健身场地规划实战指南:从器材配置到智能化管理经验分享
java·开发语言·经验分享·小程序
LayZhangStrive1 小时前
后端通识 - 后端工程开发常用的流程图类别
java·流程图·后端开发
WIN赢2 小时前
【抽象思想-从复杂中抽离简单、收敛的口子】
java·前端·javascript
captain3762 小时前
多线程单例模式
java·单例模式·java-ee
xiaotianyuanma2 小时前
【计算机毕业设计】基于Spring Boot的体育馆预约系统的设计与实现
java·spring boot·课程设计