maven

maven介绍

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。Maven除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。
Maven翻译为“专家”、“内行”;是一个采用纯Java编写的开源项目管理工具,Maven采用了一种被称之为Project Object Model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中, 通过该文件Maven可以管理项目的整个声明周期,包括清除、编译、测试、报告、打包、部署等。目前Apache下绝大多数项目都已经采用Maven进行管理. 而Maven本身还支持多种插件,可以方便更灵活的控制项目, 开发人员的主要任务应该是关注业务逻辑并去实现它,而不是把时间浪费在学习如何在不同的环境中去依赖jar包、项目部署等。Maven正是为了将开发人员从这些任务中解脱出来而诞生的一个项目管理工具
详情了解:http://maven.apache.org
maven好处
maven对项目的第三方构件(jar包)进行统一管理。向工程中加入jar包不要手工从其它地方拷贝,通过maven定义jar包的坐标,自动从maven仓库中去下载到工程中。maven提供一套对项目生命周期管理(从项目开发开始到项目开发完成)的标准,开发人员、和测试人员统一使用maven进行项目构建。项目生命周期管理:编译、测试、打包、部署、运行。maven对工程分模块构建,提高开发效率。
maven仓库
1、本地仓库:本机储存jar包的位置,在第一次执行才会构建maven命令才会构建。maven本地仓库的默认位置:在用户的目录下都只有一个.m2/repository/的仓库目录,可以修改
2、私服:就是公司局域网储存jar包的仓库。
3、中央仓库:包含绝大部分的jar包。
jar包下载顺序:
在这里插入图片描述

Maven坐标

Maven坐标主要组成
groupId:定义当前Maven项目隶属项目、组织
artifactId:定义实际项目中的一个模块
version:定义当前项目的当前版本
packaging:定义该项目的打包方式(pom/jar/war,默认为jar)
groupIdartifactIdversion简称为GAV。

Maven依赖范围

compile默认依赖范围,表示依赖的组件在编译、测试、运行都有效。会打入war包
test 测试依赖范围,只在测试时期有效。不会打入war包
provided 容器已提供范围,在编译有效,实际运行无效。
runtime 运行范围。编译无效,实际运行有效。会打入war包。
(简单的说,只有compile与runtime会打入war包)

锁jar包标签

//定义需要锁的
<dependencyManagement>
        <!-- 锁jar包 -->
        <dependencies>
            <dependency>
                <groupId>org.xerial</groupId>
                <artifactId>sqlite-jdbc</artifactId>
                <version>3.15.1</version> //如果是默认版本号,锁定的时候,可以不传版本号,如下
            </dependency>
        </dependencies>
    </dependencyManagement>
// 锁定sqlite-jdbc包
 <dependencies>
        <dependency>
            <groupId>org.xerial</groupId>
            <artifactId>sqlite-jdbc</artifactId>
        </dependency>
    </dependencies>

面试题

deploy,install,package有何区别?

package

命令完成了项目编译、单元测试、打包到本项目,但没有布署到本地maven仓库和远程maven私服仓库
例 如:如果a项目依赖于b项目,打包b项目时,只会打包到b项目下target下,编译a项目时就会报错。(打包到本项目,一般是在项目target目录下)

install

命令完成了项目编译、单元测试、打包到本地仓库,如果没有设置过maven本地仓库,一般在用户/.m2目录下。但没有布署到远程maven私服仓库

deploy

命令完成了项目编译、单元测试、打包上传到远程仓库,同时布署到本地maven仓库和远程maven私服仓库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值