1什么是maven?
maven 是java的开源项目,安装运行需要jdk 运行环境
作用
1.java工程的jar包依赖管理
2.Java项目的构建 包括 编译 测试 打包 部署
2.maven安装
测试
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qKpMIvVz-1602669625258)(maven-class.assets/image-20201013095910910.png)]
3.Maven配置
主要修改C:\soft\apache-maven-3.6.0\conf\settings.xml
maven 本地仓库默认地址,如果c盘控件充裕不需要配置
C:\Users\wgz.m2\repository
<localRepository>D://path/to/local/repo</localRepository>
4.仓库的分类
本地仓库
中央仓库
公共仓库
私服仓库
maven中央仓库官网
https://mvnrepository.com/
几乎所有的jar包最终的来源都是中央仓库
配置阿里云镜像
<!--setting.xml中添加如下配置-->
<mirrors>
<mirror>
<id>aliyun</id>
<!-- 中心仓库的 mirror(镜像) -->
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<!-- aliyun仓库地址 以后所有要指向中心仓库的请求,都会指向aliyun仓库-->
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
5.idea创建工程
java工程
打包方式
打包方式
jar 将当前工程打包为jar mvn package
war 将工程打包为 war tomcat-java web工程使用
pom 父子工程使用 父工程 表为pom
javaee工程
此处有错误,选择webapp
在pom中添加sevlet依赖
<dependency>
<!-- jstl 支持 -->
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- 引入servelet -api 依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<!-- 编译时需要 运行时不需要 -->
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
配置tomcat
遇到jar 下载不下来???
解决方式1
解决方式2
最后一定要重新刷新pom
5.jar依赖的声明周期
jar 的作用域
test:编译测试 需要,打包时不会将jar 打入
compile: 任何时候都需要
provided:编译时需要,运行时不需要
runtime:编译时不需要,运行时,测试时,打包时需要
<dependencies>
<!--test jar-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<!-- 标记当前jar 只存在测试的阶段-->
<scope>test</scope>
</dependency>
<dependency>
<!-- jstl 支持 -->
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- 引入servelet -api 依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<!-- 编译时需要,运行时不需要 -->
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
<!--运行时才需要的jar 打包时也打进来-->
<scope>runtime</scope>
</dependency>
</dependencies>
6.maven生命周期
三个:
clean 当需要重建工程时 clean 删除target
build 构建阶段
compile 编译
test junit 单元测试
package 将工程达成jar war
install 将打好的jar 安装到本地仓库
deploy 将打成jar 部署到 远程仓库
site 部署站点
7.私服
作用:
1.提高jar下载速度
2.解决公司因代码安全引起的不能直接访问外网仓库的问题
3.放置公司内部公共jar ,同事之间通过私服引用对方的jar
遇到jar无法导入问题
查询所有的 lastupdated