【Maven】IDEA创建Maven项目 Maven配置

文章目录

简介

Maven 是一个非常流行的项目管理和构建自动化工具,主要应用于 Java 项目的构建、依赖管理和项目信息管理。它是由 Apache 软件基金会维护的开源项目。Maven 的设计理念是通过一个项目对象模型(Project Object Model, POM)来描述项目,并使用声明式的方式定义构建过程。

Maven就是是专门为 Java 项目打造的管理和构建工具,它的主要功能有:

  • 提供了一套标准化的项目结构;
  • 提供了一套标准化的构建流程(编译,测试,打包,发布......);
  • 提供了一套依赖管理机制。

官方下载地址: http://maven.apache.org/download.cgi

安装需要 Java 支持( JDK >= 1.7)

解压压缩包至目录,推荐安装位置:D:\apache-maven-3.5.2

tex 复制代码
bin:mvn的运行脚本
boot:mvn类加载器框架
conf:配置文件目录
lib:依赖类库

配置

环境变量

配置仓库

配置本地仓库

D:\apache-maven-3.5.2\conf\settings.xml

xml 复制代码
<localRepository>D:/MavenRepository/repository/</localRepository>

配置阿里云镜像仓库

由于中央存储库在国外,国内可能打不开,所以在 mirrors 标签中添加阿里云镜像仓库配置。

xml 复制代码
<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>*</mirrorOf>
</mirror>

测试安装

打开 cmd,输入 mvn -v

IDEA创建项目

关闭已打开的项目,进入IDEA全局配置界面。

配置Maven的路径和用户设置文件的位置

  • Maven home path: D:\apache-maven-3.5.2
  • User settings file: D:\apache-maven-3.5.2\conf\settings.xml

新建项目,选择 Maven Archetype,如下图所示(IDEA2023)。部署 Tomcat 步骤同 Javaweb 项目一样。

Maven 生命周期是一系列按顺序执行的阶段,用于完成项目的构建流程。

  • clean : 清理项目的工作目录,删除之前构建产生的临时文件。
  • validate: 验证项目的有效性,检查是否满足所有要求。
  • compile : 编译项目的源代码。
  • test : 执行单元测试,但不打包或安装任何东西。
  • package : 将已编译的代码打包成可发布的格式,如 JAR 或 WAR 文件。
  • verify: 在发布前对包进行验证,确保其符合所有标准。
  • install : 将包安装到本地仓库,使其可用于其他 Maven 项目作为依赖。
  • site: 生成项目的站点文档,通常包含关于项目的信息、报告和其他元数据。
  • deploy: 将包部署到远程仓库,使其他人可以通过网络访问该包。

除了生命周期之外,在 Maven 工具窗口还可以看到 "Plugins" 和 "Dependencies" 标签页,分别用于管理项目的插件和依赖项。

pom.xml

pom.xml 是 Maven 项目的核心配置文件,它包含了构建项目所需的所有信息,如依赖关系、构建目录、插件等。

项目描述

xml 复制代码
<!-- 指定当前 pom 的版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 公司或者组织的唯一标志,由此生成配置时生成的路径 -->
<groupId>org.example</groupId>
<!-- 项目的唯一 ID,一个 groupId 下面可能多个项目,就是靠 artifactId 来区分的 -->
<artifactId>maven01</artifactId>
<!-- 打包方式 一般为 jar、war、zip 或者 pom -->
<packaging>war</packaging>
<!-- 版本号 -->
<version>1.0-SNAPSHOT</version>
<!-- 项目描述名 -->
<name>maven01 Maven Webapp</name>
<!-- 项目官方网站地址, Apache Maven 官方网站地址示例 -->
<url>http://maven.apache.org</url>

引入 jar 包

xml 复制代码
<!-- 包含所有项目依赖的外部库 -->
<dependencies>
    <!-- 定义单独的依赖项 -->
    <dependency>
        <!-- 依赖项的组 ID,类似于 Java 包名 -->
        <groupId>junit</groupId>
        <!-- 依赖项的项目 ID,类似于 Java 类名 -->
        <artifactId>junit</artifactId>
        <!-- 依赖项的具体版本 -->
        <version>4.11</version>
        <!-- 依赖项的作用范围 -->
        <scope>test</scope>
    </dependency>
    <!-- 可以添加更多依赖项 -->
    <dependency>
    	......
    </dependency>
</dependencies>

scope 常见的作用范围包括:

  • compile:默认值,表示该依赖项在编译、测试和运行时都需要。
  • provided:表示该依赖项在编译和测试时需要,但在运行时由容器或其他系统提供。
  • runtime:表示该依赖项在运行时需要,但在编译时不需要。
  • test:表示该依赖项仅在测试时需要,不会被打包到最终的发布物中。
  • system:表示该依赖项需要从本地文件系统中获取,而不是从远程仓库下载。

jar搜索地址: https://mvnrepository.com/artifact/org.springframework(需验证)

详细说明: https://www.runoob.com/maven/maven-pom.html(菜鸟教程)

设置统一版本号

xml 复制代码
<!-- 设置版本号 -->
<properties>
    <srping.version>4.0.2.RELEASE</srping.version>
    <mybatis.version>3.2.8</mybatis.version>
    <slf4j.version>1.7.12</slf4j.version>
    <log4j.version>1.2.17</log4j.version>
</properties>

<!-- 引用版本号 -->
<version>${srping.version}</version>
相关推荐
ProtonBase15 分钟前
如何从 0 到 1 ,打造全新一代分布式数据架构
java·网络·数据库·数据仓库·分布式·云原生·架构
乐之者v22 分钟前
leetCode43.字符串相乘
java·数据结构·算法
suweijie7683 小时前
SpringCloudAlibaba | Sentinel从基础到进阶
java·大数据·sentinel
公贵买其鹿4 小时前
List深拷贝后,数据还是被串改
java
xlsw_7 小时前
java全栈day20--Web后端实战(Mybatis基础2)
java·开发语言·mybatis
神仙别闹8 小时前
基于java的改良版超级玛丽小游戏
java
黄油饼卷咖喱鸡就味增汤拌孜然羊肉炒饭9 小时前
SpringBoot如何实现缓存预热?
java·spring boot·spring·缓存·程序员
暮湫9 小时前
泛型(2)
java
超爱吃士力架9 小时前
邀请逻辑
java·linux·后端
南宫生9 小时前
力扣-图论-17【算法学习day.67】
java·学习·算法·leetcode·图论