Maven知识点

Maven是什么?

Maven是一个项目管理工具,它包含了一个项目对象模型,一组标准集合,一个项目周期,一个依赖管理,和用来运行定义在生命周期阶段中的插件和逻辑。

核心功能

依赖管理:Maven工程对jar包管理过程

一个复杂的项目将会包含很多依赖,也有可能包含依赖于其它构件的依赖。这是Maven最强大的特征之一,它支持了传递性依赖(transitive dependencies)。假如你的项目依赖于一个库,而这个库又依赖于五个或者十个其它的库(就像Spring或者Hibernate那样)。你不必找出所有这些依赖然后把它们写在你的pom.xml里,你只需要加上你直接依赖的那些库,Maven会隐式的把这些库间接依赖的库也加入到你的项目中。Maven也会处理这些依赖中的冲突,同时能让你自定义默认行为,或者排除一些特定的传递性依赖。

项目构建:mvn tomcat:run

仓库

本地仓库、远程仓库(私服)、中央仓库

本地仓库默认为{user.home}.m2.repority,可以在配置文件中修改。

Maven项目标准目录结构

核心代码部分:src/main/java

配置文件部分:src/main/resources

测试代码部分:src/test/java

测试配置文件:src/test/resources

页面资源(包含js,css,图片资源等):src/main/webapp

Maven常用命令

clean:删除项目中已经编译好的信息,删除target目录

compile:Maven工程的编译命令,用于编译项目的源代码,将src/main/java下的文件编译成class文件输出到target目录下。

test:使用合适的单元测试框架运行测试。

package:将编译好的代码打包成可分发的格式,如JAR,WAR。

install:安装包至本地仓库,以备本地的其它项目作为依赖使用。

deploy:复制最终的包至远程仓库,共享给其它开发人员和项目(通常和一次正式的发布相关)。

每一个构建项目的命令都对应了maven底层一个插件。

Maven命令package、install、deploy的联系与区别

mvn clean package依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。

mvn clean install依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段。

mvn clean deploy依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段。

主要区别:
package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库。

install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库。

deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库。 

Maven生命周期

清理生命周期:运行mvn clean将调用清理生命周期 。

默认生命周期:是一个软件应用程序构建过程的总体模型 。

compile,test,package,install,deploy

站点生命周期:为一个或者一组项目生成项目文档和报告,使用较少。

Maven依赖冲突

每个显式声明的类包都会依赖于一些其它的隐式类包,这些隐式的类包会被maven间接引入进来,因而可能造成一个我们不想要的类包的载入,严重的甚至会引起类包之间的冲突。

要解决这个问题,首先就是要查看pom.xml显式和隐式的依赖类包,然后通过这个类包树找出我们不想要的依赖类包,手工将其排除在外就可以了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值