maven 权威指南

1.  命令格式规范

mvn 插件标识:目标标识

例如: mvn help:effective-settings  利用help插件,列出有效的setting文件内容。在实际工作中可以查看自己mvn环境的问题和与其他人的配置的差异。 曾经因为自己的mvn是在网上随便下载的,与公司内部的mvn的配置是不同的,结果导致很多命令,如发布安装等不能正确执行。后copy公司配置后OK。

2.  一些常用命令

mvn help:describe -Dplugin=sonar  该help:describe可以帮助查询某个插件的具体使用方法

This plugin has 2 goals:

sonar:help
  Description: Display help information on sonar-maven-plugin.
    Call mvn sonar:help -Ddetail=true -Dgoal=<goal-name> to display
    details.


sonar:sonar
  Description: Analyze project. SonarQube server must be started.

3. mvn生命周期

mvn package  该命令会执行package阶段之前的所有阶段的目标. 每个阶段都会有0个或者多个目标。

4.优化pom依赖

我们为了降低依赖重复而完成的两项优化:
上移共同的依赖至dependencyManagement
如果多于一个项目依赖于一个特定的依赖,你可以在dependencyManagement中
列出这个依赖。父POM包含一个版本和一组排除配置,所有的子POM需要使
用groupId和artifactId引用这个依赖。如果依赖已经在dependencyManagement中
列出,子项目可以忽略版本和排除配置。
为兄弟项目使用内置的项目version和groupId
使用{project.version}和org.sonatype.mavenbook来引用兄弟项目。兄弟项目
基本上一直共享同样的groupId,也基本上一直共享同样的发布版本。使用0.6-SNAPSHOT可以帮你避免前面提到的兄弟版本不一致问题。

5.依赖范围


compile(编译范围)
compile是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范
围。编译范围依赖在所有的classpath中可用,同时它们也会被打包。


provided(已提供范围)
provided依赖只有在当JDK或者一个容器已提供该依赖之后才使用。例如,如果
你开发了一个web应用,你可能在编译classpath中需要可用的Servlet API来编
译一个servlet,但是你不会想要在打包好的WAR中包含这个Servlet API;这个
Servlet API JAR由你的应用服务器或者servlet容器提供。已提供范围的依赖在
编译classpath(不是运行时)可用。它们不是传递性的,也不会被打包。


runtime(运行时范围)
runtime依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如,你
可能在编译的时候只需要JDBC API JAR,而只有在运行的时候才需要JDBC驱动实
现。
test(测试范围)
test范围依赖在一般的 编译和运行时都不需要,它们只有在测试编译和测试运
行阶段可用。测试范围依赖在之前的???中介绍过。
system(系统范围)
system范围依赖与provided类似,但是你必须显式的提供一个对于本地系统中
JAR文件的路径。这么做是为了允许基于本地对象编译,而这些对象是系统类库
的一部分。这样的构件应该是一直可用的,Maven也不会在仓库中去寻找它。如
果你将一个依赖范围设置成系统范围,你必须同时提供一个systemPath元素。注
意该范围是不推荐使用的(你应该一直尽量去从公共或定制的Maven仓库中引用
依赖)。

转载于:https://my.oschina.net/swearyd7/blog/197548

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Maven权威指南中文版(完整) 介绍 Apache Maven ................................................... 1 1.1. Maven... 它是什么? ............................................ 1 1.2. 约定优于配置(Convention Over Configuration) .................. 1 1.3. 一个一般的接口 ................................................ 2 1.4. 基于Maven插件的全局性重用 ...................................... 3 1.5. 一个“项目”的概念模型 ......................................... 4 1.6. Maven是Ant的另一种选择么? ..................................... 4 1.7. 比较Maven和Ant ................................................ 5 1.8. 总结 .......................................................... 9 2. 安装和运行Maven ..................................................... 10 2.1. 验证你的Java安装 ............................................. 10 2.2. 下载Maven .................................................... 10 2.3. 安装Maven .................................................... 10 2.3.1. 在Mac OSX上安装Maven ................................... 11 2.3.2. 在Microsoft Windows上安装Maven ......................... 11 2.3.3. 在Linux上安装Maven ..................................... 12 2.3.4. 在FreeBSD或OpenBSD上安装Maven ........................... 12 2.4. 验证Maven安装 ................................................ 12 2.5. Maven安装细节 ................................................ 12 2.5.1. 用户相关配置和仓库 ..................................... 13 2.5.2. 升级Maven .............................................. 13 2.6. 获得Maven帮助 ................................................ 13 2.7. 使用Maven Help插件 ........................................... 14 2.7.1. 描述一个Maven插件 ...................................... 15 2.8. 关于Apache软件许可证 .......................................... 17 I. Maven实战 ........................................................... 19 3. 一个简单的Maven项目 ............................................. 20 3.1. 简介 ..................................................... 20 3.1.1. 下载本章的例子 ..................................... 20 3.2. 创建一个简单的项目 ....................................... 20 3.3. 构建一个简单的项目 ....................................... 22 Maven权威指南 iii 3.4. 简单的项目对象模型 (Project Object Model) ................ 23 3.5. 核心概念 ................................................. 24 3.5.1. Maven插件和目标 (Plugins and Goals) ................ 25 3.5.2. Maven生命周期 (Lifecycle) .......................... 26 3.5.3. Maven坐标 (Coordinates) ............................ 32 3.5.4. Maven仓库(Repositories) ............................ 34 3.5.5. Maven依赖管理 (Dependency Management) .............. 36 3.5.6. 站点生成和报告 (Site Generation and Reporting) ...... 38 3.6. 小结 ..................................................... 38 4. 定制一个Maven项目 .............................................. 39 4.1. 介绍 ..................................................... 39 4.1.1. 下载本章样例 ....................................... 39 4.2. 定义Simple Weather项目 ................................... 39 4.2.1. Yahoo! Weather RSS ................................ 39 4.3. 创建Simple Weather项目 ................................... 40 4.4. 定制项目信息 ............................................. 41 4.5. 添加新的依赖 ............................................. 43 4.6. Simple Weather源码 ....................................... 45 4.7. 添加资源 ................................................. 51 4.8. 运行Simple Weather项目 ................................... 52
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值