文章目录
Maven
一、apache背景
1、apache----软件基金会
2、名字的由来
3、apache中项目的晋级之路
二、初识Maven
1、Maven的概念
2、传统的方式
3、小知识
三、Maven进阶
1、仓库
2、Maven项目
快速创建JavaWeb的Maven项目
- 选择新建一个项目
- 左侧功能栏选择maven
- SDK选择自己的jdk版本
- 勾选创建模版,选择maven-archetype-webapp
- next
- 填写 groupId artifactId version (坐标三要素)
- 配置自己的Maven(最重要的一步)
- 创建项目后提示是否自动引入包?
- maven项目有一个约定好的目录结构
3、maven的下载和配置
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
4、Maven的依赖
存放到<dependencies>标签下
1)查找依赖坐标,通过https://mvnrepository.com网站找到
2)以引用guava为例(google提供的使用最广泛的jar)
<dependencies>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>28.1-jre</version>
</dependency>
</dependencies>
3) 依赖有递进关系
当引入依赖时,默认引入它依赖的其他jar。
项目A -> jar包B -> 相当于引入了jar包C
4)剔除依赖的方式
使用<exclusions>标签, 以findbugs为例
<exclusions>
<exclusion>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
</exclusion>
</exclusions>
5)依赖使用的范围
构建包含的流程:编译、测试、运行、打包、安装、部署
compile test package install deploy
在右侧 maven projects标签栏中 打开项目名下面的lifecycle
如果没有 去View - Tool windows中查找
使用<scope>标签 放在artifactId下面
compile缺省值 伴随着项目的整个生命周期而存在。
provided已提供的 不需要将此依赖打包到项目最终的jar包里。
runtime运行时使用
比如<scope>runtime</scope>
test 测试时使用
system 自定义jar包位置 (不推荐)
5、Maven的生命周期
clean validate compile test package verify install site deploy
1) clean 项目清理
2) validate 校验项目的可用性
3) compile 编译
4) test 执行单元测试
5) package 打包
6) verify 校验测试结果
7) install 安装
8) site 网站站点文件的创建(用的非常少)
9) deploy 部署
命令效果:
1) compile 编译
注意点1:再次验证mvn -v里面的java运行目录,是否是jdk所在目录
如果不是,说明环境变量缺少JAVA_HOME的配置
注意点2:编译时需要指定jdk的版本
maven提供对全局jdk的配置(settings文件中<profiles>标签下)
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8
</maven.compiler.compilerVersion>
</properties>
</profile>
正式编译mvn clean compile
编译结果出现在根目录下的target文件夹中
执行打包 mvn clean package
打包结果,出现了项目的jar包
执行安装 mvn clean install (打包文件存储到本地仓库中)
本地仓库中出现对应的文件夹和jar
执行部署 mvn clean deploy
首先要配置远程仓库的地址,然后将打包文件上传到远程仓库中
2) 跳过测试阶段
方式一: mvn package -DskipTests 虽然跳过单元测试的执行,但仍然会编译代码,不是很推荐使用
方式二: mvn package -Dmaven.test.skip=true (最最常用的命令之一)既不会执行测试代码也不会编译。
3) 查看依赖树
方式一:pom.xml文件中右键 -> diagrams -> show dependencies
方式二:mvn dependency:tree
功能: 更好的解决jar包冲突问题