第四章IDEA操作Maven

文章目录

  • 创建父工程
    • 开启自动导入
    • 配置Maven信息
    • 创建Java模块工程
    • 创建 Web 模块工程
  • 在IDEA中执行Maven命令
    • 直接执行
    • 手动输入
  • 在IDEA中查看某个模块的依赖信息
  • 工程导入
    • 来自版本控制系统
    • 来自工程目录
  • 模块导入
      • 情景重现
      • 导入 Java 类型模块
  • 导入 Web 类型模块

创建父工程

开启自动导入

创建 Project 后,IDEA 会自动弹出下面提示,我们选择『Enable Auto-Import』,意思是启用自动导入。

这个自动导入一定要开启,因为 Project、Module 新创建或 pom.xml 每次修改时都应该让 IDEA 重新加载 Maven 信息。这对 Maven 目录结构认定、Java 源程序编译、依赖 jar 包的导入都有非常关键的影响。

另外也可以通过 IDEA 的 Settings 设置来开启:

配置Maven信息

每次创建 Project 后都需要设置 Maven 家目录位置,否则 IDEA 将使用内置的 Maven 核心程序(不稳定)并使用默认的本地仓库位置。这样一来,我们在命令行操作过程中已下载好的 jar 包就白下载了,默认的本地仓库通常在 C 盘,还影响系统运行。

配置之后,IDEA 会根据我们在这里指定的 Maven 家目录自动识别到我们在 settings.xml 配置文件中指定的本地仓库。

创建Java模块工程

创建 Web 模块工程

创建模块

按照前面的同样操作创建模块,此时这个模块其实还是一个Java模块。

修改打包方式

Web 模块将来打包当然应该是 war 包。

<packaging>war</packaging>

Web 设定

首先打开项目结构菜单:

然后到 Facets 下查看 IDEA 是否已经帮我们自动生成了 Web 设定。正常来说只要我们确实设置了打包方式为 war,那么 IDEA 2019 版就会自动生成 Web 设定。

另外,对于 IDEA 2018 诸版本没有自动生成 Web 设定,那么请参照下面两图,我们自己创建:

借助IDEA生成web.xml

设置 Web 资源的根目录

结合 Maven 的目录结构,Web 资源的根目录需要设置为 src/main/webapp 目录。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在IDEA中执行Maven命令

直接执行

img

手动输入

如果有需要,还可以给命令后面附加参数:

# -D 表示后面要附加命令的参数,字母 D 和后面的参数是紧挨着的,中间没有任何其它字符
# maven.test.skip=true 表示在执行命令的过程中跳过测试
mvn clean install -Dmaven.test.skip=true

在IDEA中查看某个模块的依赖信息

img

工程导入

Maven工程除了自己创建的,还有很多情况是别人创建的。而为了参与开发或者是参考学习,我们都需要导入到 IDEA 中。下面我们分几种不同情况来说明:

来自版本控制系统

目前我们通常使用的都是 Git(本地库) + 码云(远程库)的版本控制系统,结合 IDEA 的相关操作方式请点这里 (opens new window)查看克隆远程库部分。

来自工程目录

直接使用 IDEA 打开工程目录即可。下面咱们举个例子:

工程压缩包

假设别人发给我们一个 Maven 工程的 zip 压缩包:maven-rest-demo.zip。从码云或GitHub上也可以以 ZIP 压缩格式对项目代码打包下载。

解压

如果你的所有 IDEA 工程有一个专门的目录来存放,而不是散落各处,那么首先我们就把 ZIP 包解压到这个指定目录中。

img

打开

只要我们确认在解压目录下可以直接看到 pom.xml,那就能证明这个解压目录就是我们的工程目录。那么接下来让 IDEA 打开这个目录就可以了。

设置 Maven 核心程序位置

打开一个新的 Maven 工程,和新创建一个 Maven 工程是一样的,此时 IDEA 的 settings 配置中关于 Maven 仍然是默认值:

所以我们还是需要像新建 Maven 工程那样,指定一下 Maven 核心程序位置:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

模块导入

情景重现

在实际开发中,通常会忽略模块(也就是module)所在的项目(也就是project)仅仅导入某一个模块本身。这么做很可能是类似这样的情况:比如基于 Maven 学习 SSM 的时候,做练习需要导入老师发给我们的代码参考。

导入 Java 类型模块

找到老师发的工程目录

img

复制我们想要导入的模块目录

img

粘贴到我们自己工程目录下

这个工程(project)是我们事先在 IDEA 中创建好的。

img

img

在 IDEA 中执行导入

修改 pom.xml

刚刚导入的 module 的父工程坐标还是以前的,需要改成我们自己的 project。

最终效果

img

导入 Web 类型模块

其它操作和上面演示的都一样,只是多一步:删除多余的、不正确的 web.xml 设置。如下图所示:

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/120030.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32存储左右互搏 SPI总线读写FLASH W25QXX

STM32存储左右互搏 SPI总线读写FLASH W25QXX FLASH是常用的一种非易失存储单元&#xff0c;W25QXX系列Flash有不同容量的型号&#xff0c;如W25Q64的容量为64Mbit&#xff0c;也就是8MByte。这里介绍STM32CUBEIDE开发平台HAL库操作W25Q各型号FLASH的例程。 W25QXX介绍 W25QX…

10个python爬虫入门实例

昨天带伙伴萌学习python爬虫&#xff0c;准备了几个简单的入门实例 涉及主要知识点: web是如何交互的requests库的get、post函数的应用response对象的相关函数&#xff0c;属性python文件的打开&#xff0c;保存 代码中给出了注释&#xff0c;并且可以直接运行哦 如何安装requ…

栈(定义,基本操作,顺序存储,链式存储)

目录 1.栈的定义1.重要术语2.特点 2.栈的基本操作3.栈的顺序存储1.顺序栈的定义2.基本操作1.初始化2.进栈3.出栈4.读栈顶 3.共享栈 4.栈的链式存储 1.栈的定义 栈( Stack&#xff09;是只允许在一端进行插入或删除操作的线性表。 一种受限的线性表&#xff0c;只能在栈顶进行插…

服务器数据库中了elbie勒索病毒怎么办,elbie勒索病毒解密,数据恢复

网络技术的不断成熟&#xff0c;为企业的生产运营提供了强有力的支撑&#xff0c;但是&#xff0c;随之而来的网络安全威胁也不断增加。云天数据恢复中心陆陆续续接到很多企业的求助&#xff0c;企业的服务器数据库e遭到了elbie勒索病毒攻击&#xff0c;导致企业计算机系统瘫痪…

AI:63-基于Xception模型的服装分类

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…

GEE: print 函数和 console.log 函数的区别

作者&#xff1a;CSDN _养乐多_ 本文记录了 print() 函数和 console.log() 函数的区别。print 函数是 GEE 中的内置函数&#xff0c;可以打印各种数据类型&#xff0c;包括数字、字符串、图像、特征集等&#xff0c;主要目的是帮助你调试代码和查看输出结果&#xff0c;以便更…

极智AI | Whole-Body Multi-Person人体姿态估计之AlphaPose

欢迎关注我的公众号 [极智视界],获取我的更多经验分享 大家好,我是极智视界,本文来介绍一下 Whole-Body Multi-Person人体姿态估计之AlphaPose。 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码下载,链接:https://t.zsxq.com/0aiNxERDq Whole-Body、…

总决赛再获佳绩!开源网安斩获CCIA2023年网络安全优秀创新成果大赛总决赛大奖

​近日&#xff0c;由中央网信办网络安全协调局指导&#xff0c;中国网络安全产业联盟&#xff08;CCIA&#xff09;主办的“2023年网络安全优秀创新成果大赛”总决赛及颁奖典礼在武汉成功举办。开源网安创新产品“实时应用自我防护平台&#xff08;RASP&#xff09;”从200余家…

Google Chrome 浏览器 119.0.6045.106 版本提示 STATUS_INVALID_IMAGE_HASH 崩溃

问题 今天更新 Google Chrome 浏览器到 119.0.6045.106 版本&#xff0c;然后访问页面不是空白&#xff0c;就是页面崩溃了 解决方案 我在网上找了几种&#xff0c;下面这个方式符合&#xff0c;能解决我的问题&#xff0c;就是在快捷方式的属性那里&#xff0c;找到目标给它…

【编程语言发展史】Unity开发语言的历史发展

Unity开发前期版本时&#xff0c;使用的是一种名为UnityScript的类似JavaScript的语言。然而&#xff0c;随着时间的推移&#xff0c;开发者社区大多数人都倾向于使用C#进行开发&#xff0c;Unity决定将重点放在C#上&#xff0c;因为C#具有更强大的生态系统、更好的性能和更广泛…

窗函数法设计FIR中,如何选择窗函数和滤波器阶数N

窗函数法设计FIR中&#xff0c;如何选择窗函数和滤波器阶数N 1、概述 在用窗函数法设计FIR滤波器时&#xff0c;给出了滤波器要求的具体指标&#xff0c;包括通带频率fp、阻带频率fs、通带波纹Rp 和阻带衰减As 等&#xff0c;有了这些指标后&#xff0c;是否什么窗函数都可以选…

【JS】scrollTop+scrollHeight+clientTop+clientHeight+offsetTop+offsetHeight

scrollTop、scrollHeight、clientTop、clientHeight、offsetTop以及offsetHeight 1. scrollTop 与 scrollHeight 1.1 scrollTop scrollTop 是这六个属性中唯一一个可写的属性。 Element.scrollTop 属性可以获取或设置一个元素的内容垂直滚动的像素数。 一个元素的 scrollT…

Alfred 5 for mac(最好用的苹果mac效率软件)中文最新版

Alfred 5 Mac是一款非常实用的工具&#xff0c;它可以帮助用户更加高效地使用Mac电脑。用户可以学会使用快捷键、全局搜索、快速启动应用程序、使用系统维护工具、快速复制粘贴文本以及自定义设置等功能&#xff0c;以提高工作效率。 Alfred for Mac 的一些主要功能包括&#…

C++入门学习(1)命名空间和输入输出

前言 在C语言和基本的数据结构学习之后&#xff0c;我们终于迎来了期待已久的C啦&#xff01;C发明出来的意义就是填补一些C语言的不足&#xff0c;让我们更加方便的写代码&#xff0c;所以今天我们就来讲一下C语言不足的地方和在C中的解决办法&#xff01; 一、命名空间 在学习…

Linux开发工具的使用(vim、gcc/g++ 、make/makefile)

文章目录 一 &#xff1a;vim1:vim基本概念2:vim的常用三种模式3:vim三种模式的相互转换4:vim命令模式下的命令集- 移动光标-删除文字-剪切/删除-复制-替换-撤销和恢复-跳转至指定行 5:vim底行模式下的命令集 二:gcc/g1:gcc/g的作用2:gcc/g的语法3:预处理4:编译5:汇编6:链接7:函…

【Sql】sql server数据库提示:执行Transact-SQL语句或批处理时发生了异常。 无法打开数据库msdb,错误:926。

【问题描述】 打开sql server2008r2数据库的时候&#xff0c; 系统提示执行Transact-SQL语句或批处理时发生了异常。 无法打开数据库msdb&#xff0c;错误&#xff1a;926。 【概念理解】 首先MSDB数据库是的作用&#xff1a; 用于给SQL Server代理提供必要的信息来运行调度警…

2 快速上手使用Paimon数据湖

2.1 基于Flink SQL操作Paimon 在这里我们基于Flink 1.15(ON YARN)、Paimon 0.5版本开发一个案例。 注意&#xff1a;想要使用Paimon是非常简单的&#xff0c;不需要复杂的安装部署&#xff0c;只需要使用一个jar包即可对它进行操作。 我们在使用Paimon的时候其实也可以把它简单…

云闪付支付接口的技术实现方式

&#xff08;一&#xff09;整体框架。      云闪付的整体架构如图 1 所示&#xff0c;总体与原有的支付清算体系相同&#xff0c;只是增加了云端支付平台、移动应用平台和移动应用。云端支付平台主要对移动应用端的限制密钥进行更新和管理&#xff0c;同时对云端支付账户进…

2011年408计网

第33题 TCP/IP 参考模型的网络层提供的是&#xff08;&#xff09;A. 无连接不可靠的数据报服务B. 无连接可靠的数据报服务C. 有连接不可靠的虚电路服务D. 有连接可靠的虚电路服务 本题考查TCP/IP 参考模型的网络层 若网络层提供的是虚电路服务&#xff0c;则必须建立网络层的…

WPF中依赖属性及附加属性的概念及用法

完全来源于十月的寒流&#xff0c;感谢大佬讲解 依赖属性 由依赖属性提供的属性功能 与字段支持的属性不同&#xff0c;依赖属性扩展了属性的功能。 通常&#xff0c;添加的功能表示或支持以下功能之一&#xff1a; 资源数据绑定样式动画元数据重写属性值继承WPF 设计器集成 …