搭建私有仓库

Maven的仓库是用来存放Maven工程依赖的包的(通常为jar和pom,war包也可以依赖,在一些很复杂的项目中才能用到)。仓库分为三种:中央仓库、第三方仓库、本地仓库。

中央仓库

由Maven官方提供,地址:http://repo1.maven.org/,包含了几乎所有开源项目的包,但没有非开源项目的包,如:sun的私有包,Oracle的驱动包等。在使用上也有一些限制:
第一,Maven的官方仓库的服务器在国外,在国内访问非常慢,经常因为网络超时导致无法下载;
第二,Maven管方仓库有使用频率限制,如果大的团队频繁从官方仓库下载包,会导致IP被封,从而所有人都无法使用;
第三,私有包不适合传到Maven官方仓库;
第四,组织对外网访问的限制,有些公司是不允许随便连接外网。

第三方仓库

由第三方公司搭建,如:http://repository.jboss.com/maven2/、http://repository.sonatype.org/content/groups/public/,公用的“第三方仓库”同样存在“中央仓库”的问题,可能没有IP限制;另一种私有的第三方库只在组织内部使用,通常使用nexus搭建,没有中央仓库和第三方公用仓库的限制,可以愉悦的发布私有包,更重要的下载速度快、稳定。
强烈建议每个使用Maven的组织都搭建自己的私有仓库。

本地仓库

本地仓库相当于“中央仓库”或“第三方仓库”在运行Maven的电脑上的一个缓存,当然只缓存了用过的包,默认在${user.home}/.m2目录下,由于“本地仓库”通常比较大,初始化比较慢,第一次使用时最好从其他人的电脑上复制一份,这样可以大大节省初始化的时间。建议在${MAVEN_HOME}/config/setting.xml中重新指定“本地仓库”的目录,防止缓存过大影响电脑的正常运行,这一点在持续集成服务器上尤其重要。

统一的setting配置

团队成员使用统一的setting.xml文件,在setting.xml中设置使用的仓库、禁用官方仓库等全局设置,非常不建议在项目的pom中做指定仓库这样的设置,这样做的原因主要是因为一个公司只应有一个私有仓库,这样即节省资源,也利于项目的重用和管理。

创建的顶级POM

每一个产品都应该有一个顶级的pom模块儿,在此模块儿中对使用的包、插件、发布用的仓库和一些其他项目级的配置进行设置,其他模块儿都是pom的子模块儿。这样的好处是整个产品的所有模块儿使用的包是一样的,能有效的避免各个模块儿单独配置带来的版本冲突问题。

合理的参数列表

运行mvn命令时常用的参数有,-B -e -U -pl -D -P,这些参数是Maven自身的,在命令行、持续集成环境都适用。

-B

使Maven在批处理模式下运行,避免需要人工参与交互而造成挂起,在持续集成等不希望人工参与的环境很有用。

-e

在运行maven出现异常时打印完整的异常栈,对问题的分析很有帮助

-U

强制Maven检查所有快照版(snapshot)依赖的更新,默认情况下Maven每天检查快照版(snapshot)依赖的是否更新,在实际开发中快照版的更新频率远高于这个频率,-U参数能保证每一次运行都是基于最新状态的,在持续集成环境这一点尤其重要。

-D

设置maven运行时的系统变量,和Java的-D参数类似,如:maven.repo.local、maven.test.skip

-P

指定构建使用的环境变量,通常每个项目(尤其是web项目)会在不同的环境下运行,如:开发环境、测试环境、生产环境等,不同的环境的配置是不完全相同的,使用Maven的profiefs可以方便的构建出适合不同运行环境的包,运行时使用的环境变量由-P参数指定。

-pl

在一个项目有多个模块儿,而又不想同时构建所有模块儿时,通过-pl参数指定要构建的模块儿,个人觉得这个参数用的场景不多,在模块儿很多的情况下,更应该从模块儿的上进行拆分,减少模块儿间的依赖。
 
综上所述,建议的Maven构建命令:jar和pom工程:mvn clean install/deploy -B -e -U -P,web工程:mvn clean package -B -e -U -P

读一本Maven的好书

建议使用Maven的同学们抽时间去阅读一下《Maven实战》这本书,是一本很好的Maven书籍,适合所有Maven用户。

【转】使用Maven的一些小建议,希望你能喜欢的更多相关文章

  1. extjs 优化小建议

    1 原文信息 原文标题: Sencha Con 2013: Ext JS Performance tips 原文地址: [http://edspencer.net/2013/07/19/sencha- ...

  2. 有用的JavaScript开发小建议

    这篇文章将向你分享一些不为人知的但很有用的JavaScript小建议,对那些刚涉及使用JavaScript编程语言的初级开发者应该有很大的帮助. 1. 用数组长度截取数组 我们都知道,对象都是通过使用 ...

  3. 在JAVA中记录日志的十个小建议

    JAVA日志管理既是一门科学,又是一门艺术.科学的部分是指了解写日志的工具以及其API,而选择日志的格式,消息的格式,日志记录的内容,哪种消息对应于哪一种日志级别,则完全是基于经验.从过去的实践证明, ...

  4. Python入门小建议

    "java从心"正式更名"KEN DO EVERTHING".Ken(Can) Do Everything,无所不能 Believe youseft then ...

  5. Docker 部署 redis教程,附带部分小建议,防止踩坑

    Docker 部署 redis,附带部分小建议,防止踩坑 跟所有人一样,我们先从docker基本命令开始 一.拉取redis镜像(配图来自菜鸟,其实截图没多大意义,对比看下) # 默认就拉取laste ...

  6. 微信小程序--关于加快小程序开发的几个小建议

    加快小程序开发的几个小建议 1.使用 app.json创建页面 ​ 按照我们平常的开发习惯,创建一个新的页面,一般都会先创建文件夹,再创建对应page的形式,创建完成后,app.json中会自动注册该 ...

  7. redis优化小建议

    1.优化的一些小建议 1.尽量使用短的key 当然在精简的同时,不要为了key的"见名知意".对于value有些也可精简,比如性别使用0.1. 2.每个redis设置合理内存 每个 ...

  8. Maven 配置使用小技巧

    Spark开发中遇到了一些小问题,都是大神随便一个手指头帮我解决的.保持学习,积累吧! 一. 基于Intellij IDEA编辑器 1. 快捷键 注释/去注释   Ctrl+Shift+? 2. re ...

  9. 关于OpenCart的一个小建议

    OpenCart是一套老牌的开源自由B2C电商系统,最近watch了其托管在在github上的项目,发现还是很活跃的,每天都有人反馈bug. 初步的看一下,它是支持在后台管理多个店铺的,而且可以同一个 ...

随机推荐

  1. Java:多线程,Semaphore同步器

    1. 背景 类java.util.concurrent.Semaphore提供了一个计数信号量.通过Semaphore类,可以控制某个资源可被同时访问的个数,通过 acquire() 获取一个许可,如 ...

  2. mac安装GnuGP

    1.首先查看gnugp最新的稳定版: localhost:~ jack$ brew search gnupg ==> Formulae gnupg gnupg-pkcs11-scd gnupg@ ...

  3. [AWS vs Azure] 云计算里AWS和Azure的探究(1)

    转自:http://www.cnblogs.com/hotcan/archive/2013/01/31/2886794.html 云计算里AWS和Azure的探究(1) 全球领先的云的计算平台主要有两 ...

  4. 每日英语:America The Vulgar

    'What's celebrity sex, Dad?' It was my 7-year-old son, who had been looking over my shoulder at my c ...

  5. Python解码base64遇到Incorrect padding错误

    Python解码base64遇到Incorrect padding错误 base64转码过程 先说一下转换过程,详细的可以参考阮一峰.廖雪峰博客: 所谓Base64,就是说选出64个字符----小写字 ...

  6. Android下基于SDL的位图渲染(一)

    环境准备 安装Android开发环境(java.android-sdk.android ndk.gcc). 我使用的ndk版本是r10b/r10d,在win10/ubutu 15.04编译 下载sdl ...

  7. Python提取MD5

    使用Python的hashlib模块提取MD5,网上参考,觉得这个还不错,可以作为模块直接使用. # -*- coding: utf-8 -*- import hashlib import sys i ...

  8. idea 开启 problems自动代码检查

    勾上此处 会自动出现 疑问 可能需要装 problems view插件

  9. hdu1217(spfa,存在环,但需要将环的元素历遍一次.....求乘积的最大)

    题意:有n个国家货币,给出m种两个国家之间的货币兑换率,求是否可以盈利....... 思路:其实就是看国家货币兑换间是否存在一个环,使得从v点出发时,dis[v]=1,经过环回到v点时,dis[v]& ...

  10. 分页用到的子查询sql语句

    说明(2017-8-31 23:30:22): 1. 分页用到的子查询sql语句 select * from(select *,ROW_NUMBER() over(order by id)as num ...