使用Maven构建项目

使用Maven构建项目

7.使用Maven构建项目

7.1.程序员的忧伤

在这里插入图片描述

  • 我和同事使用不同的IDE开发,每次互相导项目,更新项目,都费老半天劲了
  • 每次从SVN checkout项目,因为jar包太多,都得OUT半天。
  • 项目使用的jar包版本每次下载和升级好麻烦,得自己寻找jar包的下载地址,找到了不一定能下,下载下来版本不一定对。
  • 刚换了一家公司,发现公司创建的项目结构怎么那么奇葩,和我们原来的项目习惯大大的不一样。

7.2.Maven的使命

将编辑交给IDE,剩下的由Maven来管

  1. IDE解耦
  2. 统一jar包资源路径
  3. 版本管理
  4. 统一项目结构
  5. 第三方良好的集成

下载地址

​ http://maven.apache.org/

使用maven

新建一个文件夹 (非系统盘) 创建一个文件夹 jarbao , 这个jarbao 文件夹转门放 jarbao

在这里插入图片描述

在这里插入图片描述

7.3.历史延革

属性
版本3.6.0
全称Maven
开发者Apache

7.4.安装

解压即可使用:

在这里插入图片描述

如果直接使用IDEA,该步骤可以省略

​ 变量名:M2_HOME 或者 MAVEN_HOME


在这里插入图片描述

​ PATH:


在这里插入图片描述

检测: mvn -v

在这里插入图片描述

7.5.目录结构

目录作用
${basedir}存放 pom.xml和所有的子目录
${basedir}/src/main/java项目的 java源代码
${basedir}/src/main/resources项目的资源,比如说 property文件
${basedir}/src/main/webappweb项目的根目录
${basedir}/src/test/java项目的测试类,比如说 JUnit代码
${basedir}/src/test/resources测试使用的资源
${basedir}/target存放打包后的项目文件

7.6.Maven项目操作命令

作用命令
编译项目mvn:compile
测试项目mvn:test
打包项目mvn:package
安装项目mvn:install

这些命令在哪用呢

每次安装需要记代码,idea 给了非常方便的操作
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

如果有坐标,右边的 maven 中没有 就是没用把 jarbao 引用到项目中

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

7.7.使用IDEA创建Maven项目

在这里插入图片描述

创建项目:

在这里插入图片描述

在这里插入图片描述

目录结构:

在这里插入图片描述

创建 mave 项目实例

在这里插入图片描述

注意 maven 构建项目需要网

所以我们使用 Java Enterprise

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
Artifact 一般不用改 改Name 项目名称 时 Artifact 会一起改

Group 改一下

在这里插入图片描述

在这里插入图片描述

这里就可以看到我们设置的东西

在这里插入图片描述

用 maven 创建出来的项目的结构都是一样的

7.8.仓库

7.8.1.Maven仓库

​ 仓库:用来存放 下载+发布

在这里插入图片描述

7.8.2.运作流程

在这里插入图片描述

配置文件更改

在这里插入图片描述

在这里插入图片描述

更改idea 默认 maven 位置

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

点击应用 会自动下载

如果项目报错

在这里插入图片描述
idea 里面点刷新, 就可以了

我们创建项目每次都要设置,太麻烦,所以使用下面的方法就可以创建项目时设置

在这里插入图片描述

在这里插入图片描述

7.9.pom.xml

属性名称说明
modelVersion协议版本
name公司名称
url公司地址
dependencies依赖集合
dependency依赖
scope作用域
version版本号
packaging打包类型 jar包,war包,pom聚合
build打包执行的插件

添加 mysql

在这里插入图片描述

没有这个包怎么办呢,就去官网下

https://mvnrepository.com/

这个网址不好找建议设为书签

在这里插入图片描述

找高版本,找使用次数最多的

在这里插入图片描述

在这里插入图片描述

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

这里报错 有可能是 阿里的服务器没有这个 bao

那就换第二个使用做多的版本

这里换版本号,刷新可继续下载

注意有些报错是因为网络的原因,可以换网解决

原来的

在这里插入图片描述

换版本或者换网 刷新后

在这里插入图片描述

他会自动添加到库目录里面
不用自己添加

jstl 同理

7.9.1.scope作用域

属性名称说明
compile默认的scope,表示 dependency 都可以在生命周期中使用。而且,这些dependencies 会传递到依赖的项目中。适用于所有阶段,会随着项目一起发布。
provided跟compile相似,但是表明了dependency 由JDK或者容器提供,例如Servlet AP和一些Java EE APIs。这个scope 只能作用在编译和测试时,同时没有传递性。
runtime表示dependency不作用在编译时,但会作用在运行和测试时,如JDBC驱动,适用运行和测试阶段。
test表示dependency作用在测试时,不作用在运行时。只在测试时使用,用于编译和运行测试代码。不会随项目发布。
system跟provided 相似,但是在系统中要以外部JAR包的形式提供,maven不会在repository查找它。

7.9.2.version配置

属性名称说明
SNAPSHOT(快照版本)动态监测 非稳定版本
RELEASE(正式版本)根据版本号监测 版本号一致则不更新 稳定版本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SSOA6

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值