首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >全方面熟悉Maven项目管理工具(五)教你IDEA创建Maven基本项目、导入工程和模块,并为你讲解Maven的生命周期

全方面熟悉Maven项目管理工具(五)教你IDEA创建Maven基本项目、导入工程和模块,并为你讲解Maven的生命周期

作者头像
用户11865655
发布2025-10-13 16:28:33
发布2025-10-13 16:28:33
900
代码可运行
举报
文章被收录于专栏:CSDN专栏CSDN专栏
运行总次数:0
代码可运行

1. IDEA 配置 Maven

本身 IDEA 就可以在一个项目中创建多个子模块。

1.1 创建父工程

如果要构建不同的 Maven 工程类型,可以勾选【从原型创建】在列表中选择工程类型

1.2 IDEA 配置 Maven 本地仓库

  • 在设置中前往:构建、执行、部署 >> 构建工具 >> Maven
  • 在 Maven 项目中,右侧 Maven 小列表中,点击扳手图标直接来到该页面

当 Maven 主路径更改后,可以自行配置【用户设置文件】和【本地存储库】;

1.3 创建 Java 模块工程

当配置完子工程后,IDEA 自动在父工程的 pom.xml 中配置聚合

代码语言:javascript
代码运行次数:0
运行
复制
<!-- 父工程自动完成聚合操作 -->
<modules>
    <module>pro05-module.java</module>
</modules>

2. IDEA 中执行 Mave 的三种方式

2.1 第一种:纯 UI 执行

在右侧 Maven 列表中使用【生命周期】或【插件】中的插件,可以达到执行 mvn 指令的方式

2.2 使用 mvn 辅助

在右侧 Maven 列表中点击 “M” 图标,在输入框中输入命令也可以达到执行 mvn 指令的方式

  • 这种方式,还可以在指令后面添加参数

2.3 项目 cmd 执行

在左侧项目目录中,右键打开列表选择cmd

3. IDEA 创建 Web 工程

3.1 模板创建 Web 工程

3.1.1 选择模板
  • 创建项目或者创建模块
  • 在创建 Maven 模板时,选择 webapp。然后下一步…下一步…完成
3.1.1 配置项目结构

当 web 项目创建完毕后,我们可以看到 web.xml 的配置版本是比较低的,所以这里删掉这个由模板生成的 web.xml 自己手动配置一个新版本的 web.xml

来到【项目结构.Facet】中,找到创建的 Web 项目的配置,将 web.xml 进行移除

然后再点击添加即可。

如果xml文件的版本已经足够高并且没有这方面需求的可以忽略

3.2 由 Java 工程转变成 Web 工程

跟创建普通的 Maven Java 工程一样,只不过在项目结构的 Facet 中添加 web 项目结构以及对应的 web.xml 罢了

4. 工程导入

Maven 工程除了自己创建的,还有很多情况是别人创建的。而为了参与开发或者是参考学习,我们都需要导入到 IDEA 中。

4.1 来自版本控制系统

目前我们通常使用的是 Git(本地库)+ 码云(远程库)的版本控制系统.

4.1.1 在IDEA中集成Git
  1. 新建项目,绑定git
    • 将远程的git文件目录拷贝到项目中即可
  2. 修改文件,使用IDEA操作git
    • 添加到暂存区
    • commit提交
    • push到远程仓库
  3. 远程提交

4.2 来自工程目录

直接使用 IDEA 打开工程目录即可。 请注意打开的根目录必须是在pom.xml文件的那一级

如果IDEA没有默认选择出pom文件,还需要自己右键pom文件进行添加Maven项目操作

5. 导入模块

5.1 实际情景

在实际开发中,通常会忽略模块(也就是module)所在的项目仅仅导入某一个模块本身。

这么做很可能是类似这样的情况:比如基于 Maven 学习 SSM 的时候,做练习需要导入老师发给我们的代码参考

5.2 导入模块

先将带有pom文件的pom项目文件夹放置项目文件夹中,然后导入该文件夹为模块选择Maven,等IDEA加载过后就完成了

6. 生命周期

7.1 作用:

为了让构建过程自动化完成,Maven 设定了三个生命周期,生命周期中的每一个环节对应构建过程中的一个操作

7.2 三个生命周期:

7.2.1 clean 生命周期:清理项目,包含三个phase。
  1. pre-clean:执行清理前需要完成的工作
  2. clean:清理上一次构建生成的文件
  3. post-clean:执行清理后需要完成的工作
7.2.2 default 生命周期:构建项目,重要的phase如下。
  1. validate:验证工程是否正确,所有需要的资源是否可用。
  2. compile:编译项目的源代码。
  3. test:使用合适的单元测试框架来测试已编译的源代码。这些测试不需要已打包和布署。
  4. Package:把已编译的代码打包成可发布的格式,比如jar。
  5. integration-test:如有需要,将包处理和发布到一个能够进行集成测试的环境。
  6. verify:运行所有检查,验证包是否有效且达到质量标准。
  7. install:把包安装到maven本地仓库,可以被其他工程作为依赖来使用。
  8. Deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
7.2.3site 生命周期:建立和发布项目站点,phase如下
  1. pre-site:生成项目站点之前需要完成的工作
  2. site:生成项目站点文档
  3. post-site:生成项目站点之后需要完成的工作
  4. site-deploy:将项目站点发布到服务器

7.3 特点

  • 前面三个生命周期彼此是独立的
  • 在任何一个生命周期内部,执行任何一个具体环节的操作,都是从本周期最初的位置开始执行,直到指定的地方。

Maven 之所以这么设计其实就是为了提高构建过程的自动化程度:让使用者只关心最终要干的即可,过程中的各个环节是自动执行的。

8. 插件

Maven 的核心程序仅仅负责宏观调度,不做具体工作。具体工作都由 Maven 插件完成的。

例如编译就是由 maven-compiler-plugin-3.11.jar 完成的

9. 目标

一个插件可以对应多个目标,而每一个目标都和生命周期中的某一个环节对应。

Default 生命周期中由 compile 和 test-compile 两个和编译相关的环节,这两个环节对应 compile 和 test-compile 两个目标,而这两个目标都是由 maven-compile-plugin-3.1.jar 插件来执行的

在这里插入图片描述
在这里插入图片描述

10. 仓库

  • 本地仓库:在当前电脑上,为电脑上所有的 Maven 工程服务
  • 远程仓库:需要联网
    • 局域网:我们自己搭建的 Maven 私服,例如使用 Nexus 技术
    • Internet:
      • 中央仓库:在互联网中保存某样数据的地方,可以由访问者拿取仓库的数据
      • 镜像仓库:内容和中央仓库保持一致,但是能够分担中央仓库的负载,同时让用户能够就近访问提高下载速度,例如:Nexus、aliyun

建议:不要中央仓库和阿里云镜像混淆,否则 jar 包来源不纯,彼此冲突

11. 😊前篇快递

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-10-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. IDEA 配置 Maven
    • 1.1 创建父工程
    • 1.2 IDEA 配置 Maven 本地仓库
    • 1.3 创建 Java 模块工程
  • 2. IDEA 中执行 Mave 的三种方式
    • 2.1 第一种:纯 UI 执行
    • 2.2 使用 mvn 辅助
    • 2.3 项目 cmd 执行
  • 3. IDEA 创建 Web 工程
    • 3.1 模板创建 Web 工程
      • 3.1.1 选择模板
      • 3.1.1 配置项目结构
    • 3.2 由 Java 工程转变成 Web 工程
  • 4. 工程导入
    • 4.1 来自版本控制系统
      • 4.1.1 在IDEA中集成Git
    • 4.2 来自工程目录
  • 5. 导入模块
    • 5.1 实际情景
    • 5.2 导入模块
  • 6. 生命周期
    • 7.1 作用:
    • 7.2 三个生命周期:
      • 7.2.1 clean 生命周期:清理项目,包含三个phase。
      • 7.2.2 default 生命周期:构建项目,重要的phase如下。
      • 7.2.3site 生命周期:建立和发布项目站点,phase如下
    • 7.3 特点
  • 8. 插件
  • 9. 目标
  • 10. 仓库
  • 11. 😊前篇快递
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档