Maven笔记

1、maven的初步

1.1、安装

下载maven的3.0.4版本
设置环境变量中的path

1.2、本地仓库的安装

1、修改maven目录下的conf中的setting.xml

1.3、新建一个简单的项目

主要创建文件pom.xml

1.4、创建代码和测试代码

源代码应该放置到src/main/java中
源代码的资源文件应该放置在src/main/resources文件夹中
测试代码应该放置到src/test/java中
测试代码的资源文件应该放置在src/test/resources文件夹中

1.5、运行mvn

mvn clean -->表示运行清理操作(会默认把target文件夹中的数据清理)
mvn clean compile-->表示先运行清理之后运行编译,会见代码编译到target文件夹中
mvn clean test-->运行清理和测试
mvn clean package-->运行清理和打包
mvn clean install-->运行清理和安装,会将打好的包安装到本地仓库中,以便其他的项目可以调用
mvn clean deploy-->运行清理和发布(发布到私服上面)

1.6、maven的生成方式

1、由于maven有一些固定的生成模式,所以使用
mvn archetype generate可以自动完成这个骨架的建立
2、使用eclipse开发maven项目
   1)默认STS和myeclipse都自带了maven的支持
   2)如果是eclipse需要安装m2eclipse

2、依赖

2.1、依赖包的查询

1、所有的依赖都是通过坐标来进行存储的(GAV-->groupId、artifactId、version)
2、有一些网上的仓库提供了坐标的查询(http://mvnrepository.com)
3、通过<dependencies>设置依赖

maven是如何搜索依赖的?首先会在本地仓库查询如果本地仓库没有,就去中央仓库查询

2.2、依赖的传递性

依赖是会被传递
 A-->C  B-->A ==> B-->C(这种依赖是基于compile这个范围进行传递)

对于依赖的传递而言,主要是针对compile作用域传递

2.2.1、传递的冲突问题

1、a-->b1.0  c-->b1.1  d-->a和c,这个时候在d的pom中,哪一个依赖先写就使用先写依赖的版本
如果d--><d>a</d><d>c</d>-->依赖版本是b1.0
2、a-->b1.0 c-->b1.1 d-->a和c-->b1.0  f-->d,c,如果路径的长短不一致就选择最小路径
    f-->b1.1
3、如果希望精确的控制依赖包,可以使用依赖的排除功能进行控制

2.3、依赖的范围

1、test范围指的是测试范围有效,在编译和打包时都不会使用这个依赖
2、compile范围指的是编译范围有效,在编译和打包时都会将依赖存储进去
3、provided依赖:在编译和测试的过程有效,最后生成war包时不会加入,诸如:servlet-api,因为servlet-api,tomcat等web服务器已经存在了,如果再打包会冲突
4、runtime在运行的时候依赖,在编译的时候不依赖
默认的依赖范围是compile

2.4、聚合和继承

2.5、版本管理

总版本号.分支版本号.小版本号-里程碑版本
总版本号的变动一般表示框架的变动
分支版本号:一般表示增加了一些功能
小版本号:在分支版本上面进行bug的修复
里程碑:SNAPSHOT-->alpha-->beta-->release-->GA
user0.0.1-SNAPSHOT-->user0.0.1-Release--->user1.0.0SHAPSHOT  -->user1.0.0-Rlease
                                    -->user0.1.0-SNAPSHOT-->user0.1.0-Rlease

3、仓库

3.1、本地仓库

3.2、中心仓库

3.3、私有仓库

局域网内部的仓库

3.3.1、nexus的安装

1、下载并且解压缩
2、将bin添加到环境变量
3、nexus install将nexus安装到windows的服务中
4、修改
5、nexus start启动服务

3.3.2、仓库讲解

1、host的仓库。内部项目的发布仓库

2、proxy的仓库。从远程中央仓库中寻找数据的仓库

3、group仓库。组仓库用来方便开发人员进行设置的仓库

3.3.3、私有仓库的设置

1、更新私有仓库的索引

或者直接下载索引,将其拷贝到中央仓库的索引存储中

2、设置镜像(设置setting.xml)

3、在settings.xml配置仓库,此时本机中的所有maven项目都会去私有仓库中查询依赖

3.3.4、项目的发布

1、设定release工厂和snapshots工厂

2、设置访问的权限

3.3.5、创建项目工厂和设置权限

1、创建两个工厂:release和policy的

2、配置权限
3、创建角色并且分配权限

4、创建用户

5、创建发布的工厂

4、生命周期和插件

4.1、生命周期

4.1.1、三套生命周期

1、clean
   pre-clean  执行一些需要在clean之前完成的工作
   clean  移除所有上一次构建生成的文件
   post-clean  执行一些需要在clean之后立刻完成的工作
2、compile
  validate
  generate-sources
  process-sources
  generate-resources
  process-resources     复制并处理资源文件,至目标目录,准备打包。
  compile     编译项目的源代码。
  process-classes
  generate-test-sources 
  process-test-sources 
  generate-test-resources
  process-test-resources     复制并处理资源文件,至目标测试目录。
  test-compile     编译测试源代码。
  process-test-classes
  test     使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。
  prepare-package
  package     接受编译好的代码,打包成可发布的格式,如 JAR 。
  pre-integration-test
  integration-test
  post-integration-test
  verify
  install     将包安装至本地仓库,以让其它项目依赖。
  deploy     将最终的包复制到远程的仓库,以让其它开发人员与项目共享。 
3、site
  pre-site     执行一些需要在生成站点文档之前完成的工作
  site    生成项目的站点文档
  post-site     执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
  site-deploy     将生成的站点文档部署到特定的服务器上

4.2、插件

插件是maven的核心,所有执行的操作都是基于插件来完成的
为了让一个插件中可以实现众多的类似功能,maven为插件设定了目标,一个插件中有可能有多个目标
其实生命周期中的重要的每个阶段都是由插件的一个具体目标来执行的

5、测试和web的发布

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值