Maven 初始

Maven是基于项目对象模型(POM),可以通过一段描述信号来管理项目的构建、报告和文档的软件管理工具。现在有很多大型项目都是基于Maven管理的,例如中国的某宝就是用Maven进行管理的。在Eclip4.0以上和MyEclipse中都默认安装了Maven组件。

Maven下载安装很类似JDK和JRM的安装,在Maven.org上下载解压,配置环境变量,在cmd中输入mvn -v可以确定是否配置成功。

Maven的目录结构:

     Src 

-main

-java

-package

-test

-java

-package

-resources

Maven常用的构建命令:

mvn -v 版本、compile 编译、test 测试、package 打包、clean 清除、install 安装到本地仓库;

Maven的坐标和仓库:

坐标:在数学中可以通过一个二维坐标来确定一个点的位置,在Maven中也是同样的道理,只是用坐标来确定相关构件(Jar)的位置,方便用户进行下载和使用。在Maven的坐标三用个参数来确定groupId、artifactId、version;

groupId:定义项目隶属于哪个实际项目,一般就是公司的网站的反写+项目名;

artifactId:定义项目中的模块标识,项目名+模块名;

version:当前项目的版本号,例如0.0.1snapshot 第一个表示大版本号、第二个表示分支版本号、第三表示小版本号、最后的表示版本的状态:snapshot快照、alpha内部测试、beta 公测、Release稳定、GA正式发布;

仓库:所谓仓库就是存放东西的地方,Maven仓库就是放置所有JAR文件(WAR,ZIP,POM等等)的地方,仓库分为本地仓库和中央仓库,运行Maven的时候,Maven所需要的任何构件都是直接从本地仓库获取的。如果本地仓库没有,它会首先尝试从远程仓库下载构件至本地仓库,然后再使用本地仓库的构件。

完整的项目构建过程:清理、编译、测试、打包、集成测试、验证、部署。

Pom.xml文件常用元素介绍:

project pom的根元素,用来设定一些约束;

<modelversion>4.0.0</modelversion>定义当前pom的版本;

坐标:<groupId></groupId>定义当前的项目的Id、<artifactId></artifactId>模块标识、<version></version>当前项目版本;

<packaging>打包方式</packaging>默认为jar,此外还有war、zip、pom;

<name>项目描述名</name>

<url>项目的url地址</url>

<description>项目的描述</description>

<dependencies>依赖

<dependency>坐标</dependency>

</dependencies>

<exclusions>排除依赖

<exclusion>  </exclusion>

</exclusions>

<build>构建的行为提供相应的支持

<plugins>

<plugin>坐标</plugin>

</plugins>

</build>

<parent>父模块的坐标</parent> 用于继承

<modules></modules>聚合

依赖:在古惑仔电影中山鸡跟着南哥混,南哥跟着比哥混,所以山鸡也就跟着比哥混,他们之间就是一种依赖关系 。在实际中就是一个项目依赖另一个项目,在pom.xml中就是通过<dependencies>元素进行设置的

依赖的范围作用域scope:compile、provided、test、running、system、import;

依赖冲突:1.短路优先,谁距离近先依赖那个;

2.如果路径相同,谁先生命的依赖在先,依赖那个;

聚合:使用<modules>元素使多个模块组织在一起;

继承:利用面向对象的思想将共公的一些依赖放到父项目中,在子模块继承。使用<parent>父模块坐标</parent>

以上是我在学习Maven是一些收获,分享出来,有什么不对或者不同的见解请提出来,谢谢~



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值