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                     # 测试资源目录
相关推荐
DuelCode11 分钟前
Windows VMWare Centos Docker部署Springboot 应用实现文件上传返回文件http链接
java·spring boot·mysql·nginx·docker·centos·mybatis
优创学社215 分钟前
基于springboot的社区生鲜团购系统
java·spring boot·后端
幽络源小助理22 分钟前
SpringBoot基于Mysql的商业辅助决策系统设计与实现
java·vue.js·spring boot·后端·mysql·spring
猴哥源码24 分钟前
基于Java+springboot 的车险理赔信息管理系统
java·spring boot
YuTaoShao1 小时前
【LeetCode 热题 100】48. 旋转图像——转置+水平翻转
java·算法·leetcode·职场和发展
Dcs2 小时前
超强推理不止“大”——手把手教你部署 Mistral Small 3.2 24B 大模型
java
东阳马生架构2 小时前
订单初版—1.分布式订单系统的简要设计文档
java
Code blocks2 小时前
使用Jenkins完成springboot项目快速更新
java·运维·spring boot·后端·jenkins
荔枝吻2 小时前
【沉浸式解决问题】idea开发中mapper类中突然找不到对应实体类
java·intellij-idea·mybatis
snoopyfly~3 小时前
Ubuntu 24.04 LTS 服务器配置:安装 JDK、Nginx、Redis。
java·服务器·ubuntu