文章目录
学习目标
使用idea创建java工程或者javaEE工程,如果使用jar都需要自己
添加与绑定,而使用maven可以自动完成
1.能够了解Maven的作用
2.能够理解Maven仓库的作用
3.能够理解Maven的坐标概念
4.能够掌握Maven的安装
5.能够掌握IDEA配置本地Maven
6.能够使用IDEA创建javase的Maven工程
7.能够使用IDEA创建javaweb的Maven工程
8.能够自定义javeweb的Maven工程
9.能够掌握依赖引入的配置方式
10.能够了解依赖范围的概念
1.Maven的作用
-
(1)什么是Maven?
maven是一个项目管理工具 -
(2)maven有什么作用?
》》maven对工程分模块构建,提高开发效率
》》 Maven可以对项目的jar包进行统一管理,无需每个module都复制jar包,可以使用配置文件自动导入
》》Maven可以对你的项目从写代码到上线进行一条龙服务:初始化、编译、测试、报告 、打包war、部署,清理
2.Maven仓库的作用
- (1)什么是Maven的仓库
》》1 仓库就是存放项目使用jar包和插件(plugin)的地方
》》2 仓库分类:
中央仓库:存放所有常用的jar的服务器,对外公开,由专业团队维护,地址:http://repo1.maven.org/maven2/ (Maven)
远程仓库(私服):一般是企业将核心jar包放在自己的服务器上(阿里云镜像)
本地仓库:jar包和插件存储在本地(就是一个文件夹)
3.Maven的坐标概念
- (1)什么是仓库的坐标?
仓库中有很多jar包,如果找到我们需要的jar包,需要给每一个jar包设置一个标识,即坐标 - (2)坐标的组成:
groupId: 一般是公司域名的倒写: com.baidu,com.alibaba
artifactId: module项目的名字 : day13_maven
version: 版本 : 1.0.1-SNAPSHOT - (3)使用jar包
在项目的pom.xml文件中进行配置:
4.Maven的安装
5.IDEA配置本地Maven
-
配置环境变量
-
-
修改本地仓库路径
MAVEN_HOME目录conf下打开setting文件
-
配置阿里云镜像
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/nexus/content/groups/public</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
- 关闭项目
- 进入设置
- bin目录上级
我一切都设置完后发现Maven总是报错,检查过后不是mirror的问题,只能是repository仓库问题,我一开始将repository放在了MAVEN_HOME下,也就是C盘,我的C盘被写保护了,权限比较奇怪,不知道怎么更改。我就将repository移动到D盘下。
6.IDEA创建javase的Maven工程
-
1 File ----new Project ---->勾选 create from archetype —>选择: xxxx.quickstart
-
2 给当前要创建的项目指定一个坐标,因为我这个项目以后也可以打包成包发布到仓库中,则必须指定坐标
-
3 创建完项目之后,一定要在右下角 Event-Log 点击:Import Changes Enable Auto-Import ,可以自动从仓库中导入jar包
7.IDEA创建javaweb的Maven工程
- 创建新项目
- 选择maven-achetype-webapp
- web目录
8.自定义javeweb的Maven工程
Project中创建多个web项目***
- 1 创建Project 选择quickstart (选择使用maven模板)
- 2 选中Project,再new Module 选择 webapp
9.依赖引入的配置方式
pom.xml文件
- (1)jar包依赖
如果我们需要使用一个jar,则只需要在pom.xml中进行配置 - (2)插件
<dependencies>
<dependency>
<groupId>XXXX</groupId>
<artifactId>XXXX</artifactId>
<version>XXX</version>
<scope>test</scope>
</dependency>
</dependencies>
10.依赖范围的概念
//jar范围
<scope>test</scope> 测试:junit @Test
<scope>provided</scope> 编译,测试 运行时不用:servlet
<scope>runtime</scope> 测试,运行:jdbc驱动
<scope>compile</scope> 编译 测试 运行:(默认)
11. Maven项目的命令
- Maven自带了一些对项目进行管理的命令:
clean: 清除项目编译文件, 将项目下的target文件夹删除
**compile:**对项目进行重新编译 , 在项目下生成target文件夹
package: 将当前的项目打成war/jar包target文件夹下,最终可以将war包发布到Linux服务器上
install: 将当前的项目发布到本地仓库
test: 执行测试程序
12.idea,tomcat乱码的终极解决办法
- 用记事本将Tomcat目录下conf文件夹下logging.properties打开
- 将这里改为GBK格式
13.旧项目改成Maven项目
- 步骤
- 创建maven-webapp项目
- 添加依赖 (Maven将下载,复制,粘贴jar等完成。
- 复制前端代码 webapp下面的文件
- 再复制java代码
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
14.Maven Repository搜索网站寻找所需api标签
- 要啥咱搜啥
- 例如搜servlet挑访问量最高的
- 这样就找到我们要的gavs(坐标)了
15.maven项目依赖导入成功却报错找不动包
- 在pom.xml中添加标签
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.0</version>
</dependency>
- 点击运行项目却无法找到依赖的包
这是Idea2020.1.1的一个bug可能是编译的问题
IDEA的Build(编译)操作和Maven的Build是分开的 - 解决的思路是
把IDE的Build/Run操作委托给Maven来进行,让两者统一
让IDE和Maven始终使用相同的classpath进行编译等。具体做法是,在File -> Settings -> Build,Execution,Deployment -> Build Tools -> Maven -> Runner对话框下
- 我们老师的回复