Maven初步学习

https://wiki.jikexueyuan.com/project/maven/ 这是Wiki上关于Maven学习的归纳

从如下方面学习了Maven


  • POM
  • 仓库
  • 创建工程
  • 构建&测试工程
  • 快照
  • 工程文档

POM

Pom代表工程对象模型,它是Maven工作时的基本组件,是一个xml文件,放在工程的根目录下,文件名为pom.xml,它存储了工程和配置的细节信息,Maven利用这些信息来构建工程,每个工程都只有唯一的pom文件。

Pom下的一些配置信息如下:
- Project Dependencies: 工程的依赖信息
- plugins:
- goals:
- build profiles:
- project version:
- developers:
- mailing list:

pom.xml的根元素为project,它包含三个主要节点,groupId, artifactId, version,这样在仓库中工程就具有了唯一的标识groupId:artifactId:version
节点 | 描述
——— |———–
groupId | 这是工程组的标识
artifactId | 这是工程的标识,通常是工程的名称
version | 这是工程的版本号

Super POM

所有的Pom都继承自一个Super POM,包含了一些可以被继承的默认设置,Maven 使用 effective pom(Super POM 加上工程自己的配置)来执行相关的目标,它帮助开发者在 pom.xml 中做尽可能少的配置,当然这些配置可以被方便的重写。
可以使用命令mvn help:effective-pom来查看Super POM的配置


仓库

仓库是一个位置,可以用来存储所有的工程的jar文件,library jar文件,插件或是其他的工程制定文件

Maven仓库有三种类型:
- 本地(local)
- 中央(central)
- 远程(remote)

本地仓库

本地仓库是一个本地的文件夹,它在第一次运行maven时候创建,它会将工程所需要的依赖全都下载到本地仓库中。当然可以为不同的工程项目指定不同的本地仓库,intellij idea是在settings下面更改,mac下默认的本地仓库是在/{user.name}/.m2/repository/,可以在%M2_HOME%\conf下的settings.xml里进行修改。
使用<localRepository>%localRepository</localRepository>进行配置

中央仓库

中央仓库是Maven提供的一个社区仓库,它不需要配置,网络下才能使用,其中包含了大量的常用的库,http://search.maven.org/#browse

远程仓库

为防在中央仓库中也找不到工程所需要的库,会终止并报错,开发人员自己自定义的库,包含了所需要的代码库以及其他工程中用到的jar文件。

      <repository>
         <id>companyname.lib1</id>
         <url>http://download.companyname.org/maven2/lib1</url>
      </repository>
      <repository>
         <id>companyname.lib2</id>
         <url>http://download.companyname.org/maven2/lib2</url>
      </repository>
   </repositories>

如上进行配置


创建工程

Maven使用原型(archetype)来创建工程,将使用maven-archetype-quickstart插件来创建工程。

-DgroupId=com.companyname.bank 
-DartifactId=consumerBanking 
-DarchetypeArtifactId=maven-archetype-quickstart 
-DinteractiveMode=false

上述命令将创建一个如下文件夹结构的工程

文件夹结构描述
consumerBanking包含src文件夹和pom.xml
src/main/java containsjava代码文件
src/main/test contains测试代码文件

构建&测试工程

构建&测试工程的目的就是生成最后的jar文件,执行命令

mvn clean package
- 我们给了 maven 两个目标,首先清理目标目录(clean),然后打包工程构建的输出为 jar(package)文件。
- 打包好的 jar 文件可以在 consumerBanking\target 中获得,名称为 consumerBanking-1.0-SNAPSHOT.jar。
- 测试报告存放在 consumerBanking\target\surefire-reports 文件夹中。Maven 编译源码文件,以及测试源码文件。
- 接着 Maven 运行测试用例。
- 最后 Maven 创建工程包。


快照

快照是一个特殊的版本,它表示当前开发的一个副本。与常规版本不同,Maven 为每一次构建从远程仓库中检出一份新的快照版本。现在数据服务团队会将每次更新的代码的快照(例如 data-service:1.0-SNAPSHOT)发布到仓库中,来替换旧的快照 jar 文件。
快照 VS 版本

对于版本,Maven 一旦下载了指定的版本(例如 data-service:1.0),它将不会尝试从仓库里再次下载一个新的 1.0 版本。想要下载新的代码,数据服务版本需要被升级到 1.1。对于快照,每次用户接口团队构建他们的项目时,Maven 将自动获取最新的快照(data-service:1.0-SNAPSHOT)。
利用<version>1.0-SNAPSHOT</version>来制定为版本还是快照

虽然Maven每次都自动获取最新的快照,但可以使用命令mvn clean package -U来强制Maven下载最新的快照。

工程文档

mvn site来自动生成文档,保存在target/site/index.html
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值