\2-18Maven基础

本文详细介绍了Maven的基本概念、安装与仓库的种类,强调了Maven的本地仓库在项目中的作用。接着讲解了Maven的标准目录结构和常用命令,如clean和package命令的用途。还探讨了Maven的生命周期和坐标概念,以及如何使用骨架创建Java和Web工程。在实践中,作者提到了servlet实例、依赖管理、jar包冲突解决和scope的理解,最后提及了JDK版本选择对项目的影响。
摘要由CSDN通过智能技术生成

\第1节 基本概念

在这里插入图片描述

\第2节 maven的安装和仓库种类

05仓库的种类和彼此关系

在这里插入图片描述

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

以后启动maven工程,会从这个地方找jar包

\第3节 maven标准目录结构和常用命令

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

如何运行

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

07maven常用命令

为什么需要clean?

在公司中,我们做项目。项目可能已经编译过了,得到了target。
但是每一个人的编译环境不同,得到的target不同。
所以我们需要自己再重新先清空掉,然后再complie编译一次(在自己的编译环境之下)。

在这里插入图片描述

package

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

\第4节 maven生命周期和概念模型图

在这里插入图片描述

坐标

GroupId和ArtifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。

GroupId一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的GroupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,ArtifactId是tomcat。
在这里插入图片描述

\第5节 使用骨架创建maven的java工程

10idea集成maven插件

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
每次创建项目时, IDEA 要使用插件进行创建,这些插件当你创建新的项目时,它每次都会去中央仓库下载,这样
使得创建比较慢。应该创建时,让它找本地仓库中的插件进行创建项目。
-DarchetypeCatalog=internal

11使用骨架创建maven的java工程

在这里插入图片描述
在这里插入图片描述
我的
在这里插入图片描述
别人的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

12不使用骨架创建maven的java工程

推荐不使用骨架。

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

13使用骨架创建maven的web工程

在这里插入图片描述

还需要手动创建java

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

\第6节 maven工程servlet实例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选src下面的java文件夹
在这里插入图片描述

15maven工程servlet实例之导入项目依赖的jar包

在这里插入图片描述

pom.xml添加项目所需要的jar包

在这里插入图片描述

如何从网络下载jar包?

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

如果是联网状态,就会把jar包下载到本地来了。

快捷键:两下alt,出现maven

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

为什么运行后,识别不了servlet?

maven有一个核心功能是一键构建:不再使用本地的tomcat,而是使用maven自身集成Tomcat插件。
在这里插入图片描述

有关scope的知识

scope的值有以下几种可能,进行分情况讲解:
compile
默认就是compile,什么都不配置也就是意味着compile。compile表示被依赖项目需要参与当前项目的编译,当然后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去。默认的scope,在部署的时候将会打包到lib目录下,项目在编译,测试,运行阶段都需要

test
scope为test表示依赖项目仅仅参与测试相关的工作,在编译和运行环境下都不会被使用,更别说打包了。

runntime
runntime这个scope,仅仅适用于运行环境,在编译和测试环境下都不会被使用

provided
provided适合在编译和测试的环境,他和compile很接近,但是provide仅仅需要在编译和测试阶段,同样provide将不会被打包到lib目录下。

system
从参与度来说,也provided相同,不过被依赖项不会从maven仓库抓,而是从本地文件系统拿,一定需要配合systemPath属性使用。

scope的依赖传递
A–>B–>C。当前项目为A,A依赖于B,B依赖于C。知道B在A项目中的scope,那么怎么知道C在A中的scope呢?答案是:
当C是test或者provided时,C直接被丢弃,A不依赖C;
否则A依赖C,C的scope继承于B的scope。

为什么需要区分这些scope
可以用来限制dependency的范围可以在不同的环境下打包不同的jar包,比如junit测试类的jar包不需要在编译运行的时候,就可以设置scope为test。

16maven工程servlet实例之jar包冲突解决

看视频,做练习,发现异常,暂时不处理,继续往下面看。

查找了一下,很有可能是jdk不兼容,我用的是jdk11、12,视频使用的是jdk1.8
到时候需要下载jdk1.8,还有改环境变量。

JDK版本科普,我居然一直不知道

Java SE 8就是Java8,或者jdk1.8。

Java各个版本发行日期:

1 JDK Alpha and Beta (1995)

2 JDK 1.0 (January 23, 1996)

3 JDK 1.1 (February 19, 1997)

4 J2SE 1.2 (December 8, 1998)

5 J2SE 1.3 (May 8, 2000)

6 J2SE 1.4 (February 6, 2002)

7 J2SE 5.0 (September 30, 2004)

8 Java SE 6 (December 11, 2006) 8.1 Java 6 updates

9 Java SE 7 (July 28, 2011) 9.1 Java 7 updates

10 Java SE 8 (March 18, 2014) 10.1 Java 8 updates

修改前:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改了javahome为1.8

18maven的java工程取mysql数据库数据

数据库没搞。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值