2022跟学尚硅谷Maven入门(二)IDEA操作

news2024/9/22 3:47:37

2022跟学尚硅谷Maven入门二 IDEA操作

  • 第四章 使用Maven:IDEA环境
    • 第一节 创建父工程
      • 1.创建 Project
      • 2.开启自动导入
    • 第二节 配置 Maven 信息
    • 第三节 创建 Java 模块工程
    • 第四节 创建Web模块工程
      • 1.创建模块
      • 2.修改打包方式
      • 3.Web 设定
      • 4.借助IDEA生成web.xml
      • 5.设置 Web 资源的根目录
      • 6.配置Tomcat
    • 第五节 其他操作
      • 1.在IDEA中执行Maven命令
        • (1)直接执行
        • (2)手动输入
        • (3)命令行输入
      • 2.在IDEA中查看某个模块的依赖信息
      • 3.工程导入
        • (1)来自版本控制系统
        • (2)来自版本控制系统
        • (3)来自工程目录
          • [1]工程压缩包
          • [2]解压
          • [3]打开
          • [4]设置 Maven 核心程序位置
      • 4.模块导入
          • (1)情景重现
        • (2)导入 Java 类型模块
          • [1]找到老师发的工程目录
          • [2]复制我们想要导入的模块目录
          • [3]粘贴到我们自己工程目录下
          • [4]在 IDEA 中执行导入
          • [5]修改 pom.xml
          • [6]最终效果
        • (3)导入 Web 类型模块
  • 第五章 其他核心概念
    • 第一节 其他核心概念
      • 1.生命周期
        • (1)作用
        • (2)三个生命周期
        • (3)特点
      • 2.插件和目标
        • (1)插件
        • (2)目标
      • 3.仓库

第四章 使用Maven:IDEA环境

第一节 创建父工程

1.创建 Project

IDEA版本: 2021.3.1
创建工程
配置项目名称
项目

Name 项目名称 pro02-maven-idea-parent
GroupId 用来定位Maven com.atguigu.maven
ArtifactId 用来定位Maven 和项目名一致即可

2.开启自动导入

开启自动导入

第二节 配置 Maven 信息

每次创建 Project 后都需要设置 Maven 家目录位置,否则 IDEA 将使用内置的 Maven 核心程序(不稳定)并使用默认的本地仓库位置。这样一来,我们在命令行操作过程中已下载好的 jar 包就白下载了,
默认的本地仓库通常在 C 盘,还影响系统运行。
配置之后,IDEA 会根据我们在这里指定的 Maven 家目录自动识别到我们在 settings.xml 配置文件中指定的本地仓库。
配置文件1
配置:
Maven下载解压包的解压路径
setting.xml文件位置
Maven仓库位置
Maven配置

第三节 创建 Java 模块工程

创建子工程(模块工程)
创建模块工程

点击下一步
点击下一步
修改项目名
点击完成
点击完成
子工程创建完毕后,父工程pom.xml会自动添加packaging
自动添加packaging
手写一个程序测试一下。
先配置父工程的pom.xml增加

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

添加依赖
配置Maven的JDK
配置Maven的JDK
创建JAVA类
创建JAVA类
输入类名创建
输入类名创建

package com.atguigu.maven;

/**
 * @ClassName: Hello
 * @Description:
 * @Author: wty
 * @Date: 2022/12/31
 */

public class Hello {
    public void showMessage(){
        System.out.println("Hello maven, I am IDEA");

    }
}

创建测试类
这里要注意,IDEA2021.3.1兼容Maven3.63之前的版本,之后Maven如果太高是不兼容的,所以一定要下载老一点的版本,稳定一些。
创建测试类

package com.atguigu.maven;

import org.junit.Test;

/**
 * @ClassName: HelloTest
 * @Description:
 * @Author: wty
 * @Date: 2022/12/31
 */

public class HelloTest {
    @Test
    public void testHello(){
        Hello hello = new Hello();
        hello.showMessage();
    }
}

第四节 创建Web模块工程

1.创建模块

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

2.修改打包方式

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

<packaging>war</packaging>

3.Web 设定

首先打开项目结构菜单:
新建web项目maven
点击下一步
点击下一步
输入项目名称后点击完成
输入项目名称后点击完成

打开pom.xml,packaging设置为 war

<packaging>war</packaging>

pom.xml设置

4.借助IDEA生成web.xml

打开项目结构
点击Facets
点选Facets

5.设置 Web 资源的根目录

配置如下

F:\javawebwork\pro02-maven-idea-parent\pro04-module-web\src\main\webapp\WEB-INF\web.xml

配置web.xml路径
配置web.xml路径
核对目录
核对目录
简单测试一下创建前台界面
创建jsp界面
取名index.jsp
index.jsp的创建
新建Java类
新建java类
编写代码

package com.atguigu.maven;

/**
 * @ClassName: Message
 * @Description:
 * @Author: wty
 * @Date: 2023/1/1
 */

public class Message {
    public String getMessage(){
        return "hello message";
    }
}

编写index.jsp代码

<%@ page import="com.atguigu.maven.Message" %><%--
  Created by IntelliJ IDEA.
  User: wty
  Date: 2023/1/1
  Time: 14:38
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%=new Message().getMessage()%>

</body>
</html>

6.配置Tomcat

点击新建Tomcat
新建Tomcat
选择Edit Configurations……
选择Edit Configurations
配置Tomcat
配置Tomcat
配置Tomcat依赖
配置依赖
选择Artifact
选择Artifact
配置Artifact
选择Artifact
更改上下文参数
更改上下文参数
更改为/demo后点击右下角Apply
之后切换到Server继续配置
配置Server
配置完毕,点击右上角的绿色三角启动Tomcat
启动

第五节 其他操作

1.在IDEA中执行Maven命令

(1)直接执行

生命周期菜单
生命周期菜单

(2)手动输入

输入自定义指令

mvn clean install

自定义指令
跳过测试执行安装

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

跳过测试执行安装

(3)命令行输入

命令行输入
要先把Terminal更改为cmd
把Terminal更改为cmd
命令行中可以执行相同命令
命令行中可以执行相同命令

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

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

3.工程导入

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

(1)来自版本控制系统

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

(2)来自版本控制系统

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

(3)来自工程目录

直接使用 IDEA 打开工程目录即可。下面咱们举个例子:
打开命令行
打开命令行
创建新项目

mvn archetype:generate

创建新项目
注意是在根目录下创建,打开IDEA最好使用管理员运行

命名
新建的项目目录如下
新建的项目目录

[1]工程压缩包

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

[2]解压

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

[3]打开

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

[4]设置 Maven 核心程序位置

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

所以我们还是需要像新建 Maven 工程那样,指定一下 Maven 核心程序位置:
导入的项目中Build中有报错
解决方案
解决方案

4.模块导入

(1)情景重现

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

(2)导入 Java 类型模块

[1]找到老师发的工程目录

采用上面新建的项目即可

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

ctrl+c直接复制Module即可
拷贝工程

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

这个工程(project)是我们事先在 IDEA 中创建好的
ctrl+v粘贴
粘贴

[4]在 IDEA 中执行导入

粘贴完后,可以在项目中看到2个Module
IDEA 中执行导入
打开项目结构配置
选择import Module
选择导入
紧接着选择1个Module(这里IDEA不支持多选)
选择1个Module
选择导入Module
导入
同样操作重复做一下,导入web项目,之后查看项目变化
操作完后的文件夹
之后配置Tomcat和前面步骤一样,再运行Tomcat发现项目成功启动即可
项目启动

[5]修改 pom.xml

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

<packaging>pom</packaging>

添加依赖后,刷新Maven
刷新父工程

[6]最终效果

不报错
最终结果

(3)导入 Web 类型模块

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

第五章 其他核心概念

第一节 其他核心概念

1.生命周期

(1)作用

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

(2)三个生命周期

生命周期名称作用各个环节
Clean清理操作相关pre-clean
clean
post-clean
Site生成站点相关pre-site
site post-site
deploy-site
Default主要构建过程validate
generate-sources
process-sources
generate-resources
process resources 复制并处理资源文件,至目标目录,准备打包。
compile 编译项目main 目录下的源代码。
process-classes
generate-test-sources
process-test-sources
generate-test-resources
process-test-resources 复制并处理资源文件,至目标测试目录。
test-compile 编译测试源代码。
process-test-classes
test 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。
prepare-package
package 接受编译好的代码,打包成可发布的格式,如JAR。
pre-integration-test
integration-test
post-integration-test
verify
install将包安装至本地仓库,以让其它项目依赖。
deploy将最终的包复制到远程的仓库,以让其它开发人员共享;或者部署到服务器上运行(需借助插件,例如:cargo)。

(3)特点

前面三个生命周期彼此是独立的。
在任何一个生命周期内部,执行任何一个具体环节的操作,都是从本周期最初的位置开始执行,直到指定的地方。(本节记住这句话就行了,其他的都不需要记)
Maven 之所以这么设计其实就是为了提高构建过程的自动化程度:让使用者只关心最终要干的即可,过程中的各个环节是自动执行的。

比如执行的是install但是会把install之前的生命周期跑一遍
特点

2.插件和目标

(1)插件

Maven 的核心程序仅仅负责宏观调度,不做具体工作。具体工作都是由 Maven 插件完成的。例如:编
译就是由 maven-compiler-plugin-3.1.jar 插件来执行的。

(2)目标

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

3.仓库

(1).本地仓库:在当前电脑上,为电脑上所有 Maven 工程服务
本地仓库
本地仓库

(2).远程仓库:需要联网
局域网:我们自己搭建的 Maven 私服,例如使用 Nexus 技术。
Internet
中央仓库
镜像仓库:内容和中央仓库保持一致,但是能够分担中央仓库的负载,同时让用户能够
就近访问提高下载速度,例如:Nexus aliyun
建议:不要中央仓库和阿里云镜像混用,否则 jar 包来源不纯,彼此冲突。
配置阿里云
专门搜索 Maven 依赖信息的网站:https://mvnrepository.com/

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库,计算机网络、操作系统刷题笔记21

数据库&#xff0c;计算机网络、操作系统刷题笔记21 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多算法学生都得去找开发&#xff0c;测开 测开的话&#xff0c;你就得学数据库&#xff0c;sql&#xff0c;oracle…

基于thinkphp6搭建的 admin后台管理基础框架,方便快速进行二次开发

小牛Admin v2.1 完整代码下载地址&#xff1a;基于thinkphp6搭建的 admin后台管理基础框架 使用thinkphp6 layui 搭建的 admin后台管理基础框架&#xff0c;方便快速进行二次开发 该项目是在 http://www.xnadmin.cn/ 小牛Admin 开源项目的基础上进行个人优化的产物 运行环境…

Redis-用户签到UV统计

一、用户签到 1.1 BitMap用法 我们按月来统计用户签到信息&#xff0c;签到记录为1,未签到记录为0 把每一个bit位对应当月的每一天&#xff0c;形成了映射关系。用0和1表示业务状态&#xff0c;这种思路就称为位。Redis中是用利用string类型数据结构实现BitMap&#xff0c;因…

使用pip命令时,报错:_sysconfigdata_x86_64_conda_cos7_linux_gnu.py

问题&#xff1a; 在linux服务器中想使用pip命令pip show list查看安装了哪些包时&#xff0c;报错 ModuleNotFoundError: No module named ‘_sysconfigdata_x86_64_conda_cos7_linux_gnu’ 问题原因 原因是&#xff1a;在当前的环境下的python中丢失了一个备份文件&#xf…

经典算法之常用排序

目录❤️前言&#x1f498;一、分治思想&#x1f49e;二、归并排序1.实现方法2.动图分析3.代码模板&#x1f496;三、快速排序1.实现方法2.动图分析3.代码模板❤️前言 本文介绍两种基于分治思想的经典排序算法&#xff1a; 归并排序与快速排序 &#x1f498;一、分治思想 分…

【Python从入门到进阶】1、初识Python

一、Python的起源 1989年&#xff0c;为了打发圣诞节假期&#xff0c;荷兰程序员Gudio van Rossum吉多●范罗苏姆(龟叔&#xff0c;下图穿“人生苦短&#xff0c;我用Python”T恤衫的老哥)决心开发一个新的解释程序&#xff08;Python维形&#xff09;; 1991年&#xff0c;第一…

机器学习中的数学原理——向量内积

今天是2023年的第一天&#xff0c;祝大家新年快乐&#xff01;这个专栏主要是用来分享一下我在机器学习中的学习笔记及一些感悟&#xff0c;也希望对你的学习有帮助哦&#xff01;感兴趣的小伙伴欢迎私信或者评论区留言&#xff01;这一篇就更新一下《白话机器学习中的数学——…

【C语言】指针

文章目录指针作为参数的指针访问某个地址上的变量*指针的应用数组和指针数组变量是特殊的指针指针常量和常量指针数组指针和指针数组常见错误指针运算动态内存分配指针 一般用p来表示一个指针&#xff0c;来自pointer 一个指针类型的变量就是保存地址的变量。 变量的值是内存…

windows x32调用门实现 ring3提权

概述 调用门是Intel提供的一个机制&#xff0c;用于控制不同权限级(ring0-ring3)的程序函数调用。简单点就是提供了一个ring3 调用ring0 函数的机制。 在intel手册volume3-Chapter 5.83描述如下 Call gates facilitate controlled transfers of program control between dif…

算法笔记(25)win10系统安装tensorflow-GPU环境亲测好用

环境准备 首先你的电脑得有GPU显卡&#xff0c;然后在tensorflow官网&#xff08;在 Windows 环境中从源代码构建 | TensorFlow&#xff09;找到各安装软件对应的版本&#xff0c;版本不对应将会导致安装失败。 标本机GPU显卡版本题本文选择的是官网最新的组合&#xff1a;p…

cubeIDE开发, stm32窗口看门狗WWDG的CubeMX配置及HAL库底层实现分析

一、stm32的WWDG说明 1.1 WWDG特点&#xff1a; 在前一篇博文介绍独立看门狗时就指出STM32 MCU提供两个看门狗&#xff0c;独立看门狗和窗口看门狗。 cubeIDE开发&#xff0c; stm32独立看门狗IWDT的CubeMX配置及HAL库底层实现分析_py_free的博客-CSDN博客 相比独立看门狗&am…

【C语言】数据类型

文章目录c语言的类型整数整数类型整数的内部表达整数的范围unsigned整数的格式化浮点型浮点类型输入输出输出精度字符类型逃逸字符类型转换自动类型转换强制类型转换逻辑类型bool逻辑运算条件运算符C语言的变量&#xff0c;必须在使用前定义&#xff0c;并且确定类型&#xff1…

ubuntu下使用doxygen生成软件文档

ubuntu下使用Doxygen生成软件文档一、软件下载1.系统安装Doxygen2.Vscode插件安装二、软件配置三、文档生成1.方法1&#xff1a;使用Doxygen-gui生成&#xff08;推荐&#xff09;2.方法&#xff1a;采用Doxygen命令&#xff08;不推荐&#xff09;另外Windows下使用方法提示&a…

【JavaScript】 Date 日期对象概述及相关方法

文章目录【JavaScript】 Date 日期对象的创建及相关方法一. 日期对象的创建二. 日期对象的相关方法三. 时间戳案例案例1&#xff1a;在页面上展示一个时钟&#xff0c;隔1s更新一次案例2&#xff1a;距离除夕倒计时【JavaScript】 Date 日期对象的创建及相关方法 一. 日期对象…

ArcGIS基础:构建点对连线表达点集内部相互关系

原始数据如下&#xff0c;为普通的点图层&#xff0c;总共是21个点。 点位分布如下&#xff1a; 属性表打开如下&#xff1a; 下面使用【构造视线】工具进行操作&#xff0c;其工具位于【3D分析工具】下的【可见性】工具栏。 打开【构造视线】对话框&#xff0c;把【视点…

Leetcode【494. 目标和】

题目描述 给你一个整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 ‘’ 或 ‘-’ &#xff0c;然后串联起所有整数&#xff0c;可以构造一个 表达式 例如&#xff0c;nums [2, 1] &#xff0c;可以在 2 之前添加 ‘’ &#xff0c;在 1 之前添加 ‘-’ &…

第10章 角色页的分页、排序、查询实现

1 重构WebApi.Controllers.RoleController. PostRolePageByFromBodyAsync //把所有符合条件的角色实例&#xff0c;按照指定字段进行排序操作。 if (!string.IsNullOrEmpty(pagination.OrderByFiled)) { var _obj JsonConvert.DeserializeAnonymousType(pagination.OrderByFil…

力扣 2351. 第一个出现两次的字母

题目 给你一个由小写英文字母组成的字符串 s &#xff0c;请你找出并返回第一个出现 两次 的字母。 注意&#xff1a; 如果 a 的 第二次 出现比 b 的 第二次 出现在字符串中的位置更靠前&#xff0c;则认为字母 a 在字母 b 之前出现两次。 s 包含至少一个出现两次的字母。 …

TopK问题的必会解法

目录经典解法&#xff0c;创建K个大小的堆不考虑空间的暴力排序做法不考虑空间的快排partition变形减治法思想(核心&#xff1a;找第K大的数)空间有限放不下&#xff0c;海量数据的分治法经典解法&#xff0c;创建K个大小的堆 传统的直接建立一个K个元素的小顶堆&#xff0c;类…

推荐两款可以将图片无损放大的在线工具

文章目录一、waifu2x网站预览传送地址二、BigJPG网站预览传送地址好不容易找到合适的图片素材但尺寸太小&#xff1f;那这里的工具正好适合你&#xff0c;能把你的小图放大几倍都不模糊。 一、waifu2x 本程序使用卷积神经网络对动漫风格的图片进行放大操作&#xff08;支持照…