我们的项目,往往都要经历编译、测试、运行、打包、安装 ,部署等一系列过程。
1.什么是构建?
指的是项目从编译、测试、运行、打包、安装 ,部署整个过程都交给 maven 进行管理,这个
过程称为构建。
一键构建
指的是整个构建过程,使用 maven 一个命令可以轻松完成整个工作。
Maven 规范化构建流程如下:每个阶段使用一个命令完成
👉总结:如果现在有一种工具,可以把你从上面的繁琐工作中解放出来,能帮你构建工程 ,管理 jar
包 ,编译代码 ,还能帮你自动运行单元测试 ,打包 ,生成报表 ,甚至能帮你部署项目 ,生成 Web 站
点 ,你会心动吗?Maven 就可以解决上面所提到的这些问题
=================================================================================
1、安装 解压即可
注意:文件目录不要太深 名字中不要有中文或空格
2、环境配置 环境变量中添加配置
Maven 是一个基于 Java 的工具,所以要做的第一件事情就是安装 JDK。
安装 JDK1.8 + 版本 (将JAVA_HOME/bin 配置环境变量 path ),我使用的是 JDK8 相关版本
配置 MAVEN_HOME ,变量值就是你的 maven 安装 的路径(bin 目录之前一级目录)
右键 “计算机”,选择 “属性”,之后点击 “高级系统设置”,点击"环境变量",
来设置环境变量,有以下系统变量需要配置:
(1)新建系统变量 MAVEN_HOME,变量值:E:\Maven\apache-maven-3.3.9
(2)编辑系统变量 Path,添加变量值:%MAVEN_HOME%\bin
注意:注意多个值之间需要有分号隔开,然后点击确定。
(1)新建系统变量 MAVEN_HOME,变量值:D:\develop\apache-maven-3.5.3
(2)编辑系统变量 Path,添加变量值:%MAVEN_HOME%\bin
(3)测试配置文件是否成功
==============================================================================
1.src/main/java —— 存放项目的.java 文件
2.src/main/resources —— 存放项目资源文件,如 spring, hibernate 配置文件
3.src/test/java —— 存放所有单元测试.java 文件,如 JUnit 测试类
4.src/test/resources —— 测试资源文件
5.target —— 项目输出位置,编译后的 class 文件会输出到此目录
6.pom.xml——maven 项目核心配置文件
- 注意:如果是普通的 java 项目,那么就没有 webapp 目录。
作为一个 maven 工程,它的 src 目录和 pom.xml 是必备的。
进入 src 目录后,我们发现它里面的目录结构如下
================================================================================
pom.xml:
<project xmlns=“http://maven.apache.org/POM/4.0.0”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.tjcu.edu
maven_day1
1.0
Maven 规范化构建流程如下:每个阶段使用一个命令完成
(1)mvn compile:编译
(2)mvn clean :清除
(3)mvn test:测试
(4)mvn package :打包
(5)mvn install
1、mvn compile:编译
compile 是 maven 工程的编译命令
作用: 将 src/main/java 下的文件编译为 class 文件输出到 target目录下。
cmd 进入命令状态,执行 mvn compile,如下图提示成功:
会出现target包:
查看 target 目录,class 文件已生成,编译完成。
2、mvn clean :清除
clean 是 maven 工程的清理命令,执行 clean 会删除 target 目录及内容。
3、mvn test:测试
test 是 maven 工程的测试命令 mvn test
作用: 会执行 src/test/java 下的单元测试类。
cmd 执行 mvn test 执行 src/test/java 下单元测试类
下图为测试结果,运行 1 个测试用例,全部成功:
4、mvn package :打包
package 是 maven 工程的打包命令
作用: (1)对于 java 工程执行 package 打成 jar 包
(2)对于 web 工程打成 war包。
打包后;target中会有打包好的jar包
5、mvn install 安装
install 是 maven 工程的安装命令
作用:执行 install 将 maven 打成 jar 包或 war 包发布到本地仓库。
从运行结果中,可以看出:
当后面的命令执行时,前面的操作过程也都会自动执行!
👉注意:
1、maven命令时后边不能加分号
2、每个maven命令多对应一个依赖 ,第一次使用时需要下载 下载一次
下载要求网速的原因:需要去国外下载
==============================================================================
1.默认本地库
2.如果没有就联网去中心仓库下载到本地仓库(要求网络稳定)
3.配置阿里云镜像仓库(解决跨国下载资源网络不稳定问题)
4、修改本地仓库位置
1、默认本地仓库:
本地仓库 :用来存储从远程仓库或中央仓库下载的插件和 jar 包,项目使用一些插件或 jar 包,
优先从本地仓库查找
默认本地仓库位置在 u s e r . d i r / . m 2 / r e p o s i t o r y , {user.dir}/.m2/repository, user.dir/.m2/repository,{user.dir}表示 windows 用户目录。
2、如果没有就联网去中心仓库下载到本地仓库(要求网络稳定)
中央仓库 :在 maven 软件中内置一个远程仓库地址 http://repo1.maven.org/maven2 ,它是中
央仓库,服务于整个互联网,它是由 Maven 团队自己维护,里面存储了非常全的 jar 包,它包
含了世界上大部分流行的开源项目构件
3、配置阿里云镜像仓库(解决跨国下载资源网络不稳定问题)
远程仓库(阿里云云镜像仓库就是远程仓库也算是远程仓库,但是大多数公司都会有自己的远程仓库):
如果本地需要插件或者 jar 包,本地仓库没有,默认去远程仓库下载。
远程仓库可以在互联网内也可以在局域网内
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
4、修改本地仓库位置
==================================================================================
IDEA集成Maven工具步骤(引入外部Maven)
选择file——>setting
==============================================================================
=============================================================================
(1)选择 idea 提供好的 maven 的java 工程模板
(2)点击 Next 填写项目信息
- 项目信息注意事项:
1.父项目为空
2.artifact 项目骨架
- 坐标中Version版本区别:
1、snapshot 1.0快照版本 没有开发完的版本
2、release 1.0 稳定版本 开发完的版本
(3)点击 Next,此处不做改动。
点击 Finish 后开始创建工程,耐心等待,直到出现如下界面。
(4)普通java新建项目需要改动
a、修改项目pom文件
普通java项目需要
1、坐标
2、环境参数
3、依赖
注意:将标签及其内部信息全部删掉
修改后pom.xml文件:
<?xml version="1.0" encoding="UTF-8"?><project xmlns=“http://maven.apache.org/POM/4.0.0” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>
4.0.0
com.tjcu
maven_java
1.0-SNAPSHOT
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
junit
junit
4.11
test
b、补全项目目录结构
最终目录结构不完整,需要自己手动补齐
src/main/resources
src/test/resources
(1)选择 idea 提供好的 maven 的web 工程模板
(2)点击 Next 填写项目信息
(3)点击 Next,此处不做改动。
(4)点击 Finish 后开始创建工程,耐心等待,直到出现如下界面。
(5)新建项目需要改动
a、修改(pom.xml详解)
项目需要
1、坐标
2、环境参数
3、依赖
4、打包方式
注意:将标签及其内部信息全部删掉
b、补全项目结构:
1.手动添加 src/main/java 目录,如下图右键 main 文件夹——>New——>Directory
(6)tomcat部署
=============================================================================
添加依赖需要指定依赖 jar 包的坐标,但是很多情况我们是不知道 jar 包的的坐标,可以通过如下方
式查询:
1、中心库搜索网站:
网站搜索示例:
2、进行验证
为了避免同一时间全球的很多人访问网站设置了笔比较高级的验证码(验证两次,找轮船之类的)
3、进入到官网
4、搜索mybatis找到jar包
5、选择项目所需要的jar包
选择jar包原则,选择下载量最多的,就是最好的,一般都是用于生成环境中的,不要最求最新版本
6、引入相关依赖:
7、手动刷新依赖和自动刷新依赖的方法
(1)手动刷新依赖
注意:如果不设置自动刷新 引入依赖之后需要手工刷新项目
(2)设置IDEA自动刷新maven项目配置
8、lifecycle是maven的生命周期
====================================================================================
A 依赖 B,需要在 A 的 pom.xml 文件中添加 B 的坐标,添加坐标时需要指定依赖范围,依赖范围包括:
scope:
1、compile【默认值】:作用于项目整个范围
编译范围,指 A 在编译时依赖 B,此范围为默认依赖范围。编译范围的依赖会用在
编译、测试、运行,由于运行时需要所以编译范围的依赖会被打包。
2、provided:不会出现在打包的产物里,由容器(服务器)提供
provided 依赖只有在当 JDK 或者一个容器已提供该依赖之后才使用,
provided 依赖在编译和测试时需要,在运行时不需要,
比如:servlet api 被 tomcat 容器提供。
注意:所以服务器中有的jar包,我们需要用provide,不然打包运行时会和服务器中的jar包冲突
3、runtime:最多生效到测试环节
runtime 依赖在运行和测试系统的时候需要,但在编译的时候不需要。
比如:jdbc的驱动包。由于运行时需要所以 runtime 范围的依赖会被打包。
4、test:测试时生效 junit中使用
test 范围依赖 在编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用
比如:junit。由于运行时不需要所以 test范围依赖不会被打包。
5、system:需要手工添加,不推荐使用
system 范围依赖与 provided 类似,但是你必须显式的提供一个对于本地系统中JAR
文件的路径,需要指定 systemPath 磁盘路径,system依赖不推荐使用
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://img-blog.csdnimg.cn/img_convert/92569b24beb6b3a091fc5a3d00ec09ff.jpeg)
最后
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
所以 test范围依赖不会被打包。
5、system:需要手工添加,不推荐使用
system 范围依赖与 provided 类似,但是你必须显式的提供一个对于本地系统中JAR
文件的路径,需要指定 systemPath 磁盘路径,system依赖不推荐使用
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。[外链图片转存中…(img-Nfx7UKdQ-1713582614100)]
[外链图片转存中…(img-Tb4rEYkU-1713582614100)]
[外链图片转存中…(img-6ceyVQeh-1713582614101)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://img-blog.csdnimg.cn/img_convert/92569b24beb6b3a091fc5a3d00ec09ff.jpeg)
最后
[外链图片转存中…(img-VSq8os8P-1713582614101)]
[外链图片转存中…(img-zLitHmal-1713582614101)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!