Maven简介

发布时间:2023年12月23日

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,主要配置以下内容即可:

  • 本地仓库位置
  <!-- 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>
  • JDK编译版本
<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相关信息,如
<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
C:/DevProgramFiles/Java/apache-maven-3.6.1
  • 配置User settings file
C:\DevProgramFiles\Java\apache-maven-3.6.1\conf\settings-jdk17.xml
  • 检查Local repository
    此时应该为settings.xml文件中已经配置的本地仓库位置,如
D:\DevRepository\repo

4 Maven目录介绍

在这里插入图片描述

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:存放测试相关的资源文件,如测试配置文件等。
|-- 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                     # 测试资源目录
文章来源:https://blog.csdn.net/SUNBOYmxbsH/article/details/135166004
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。