nexus私服搭建及maven生命周期
一、maven找库流程

从流程上看创建nexus私服,能够优化流程,而且更加快速
二、nexus下载、安装
1、nexus下载地址
https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.14.5-02-bundle.tar.gz
2、nexus解压并安装环境
#解压
tar -zxif nexus-2.14.5-02-bundle.tar.gz
#在环境变量中设置启动用户
vim /etc/profile
#安全起见不建议使用root用户,如果使用其它用户需要加相应权限
RUN_AS_USER=root
3、配置启动参数
#${nexusBase}为nexus的安装路径
vim ${nexusBase}/conf/nexus.properties
#端口号
applicatiom-port=8081
#仓库地址
nexus-work=${bundleBasedir}/../sonatype-work/nexus
#启动nexus
${nexusBase}/bin/nexus start
#停止nexus
${nexusBase}/bin/nexus stop
4、登录nexus界面
地址:http://{ip}:8081/nexus/
默认用户名:admin
默认密码:admin123
5、手动更新索引
前往maven中央仓库下载indexer-cli-5.1.1.jar
http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.apache.maven.indexer%22%20AND%20a%3A%22indexer-cli%22
6、下载索引文件
http://repo.maven.apache.org/maven2/.index/
nexus-maven-repository-index.gz
nexus-maven-repository-index.properties
7、解压索引文件
java -jar indexer-cli-5.1.1.jar -u nexus-maven-repository-index.gz -d indexer
8、拷贝索引文件至目录
{nexus-home}/sonatype-work/nexus/indexer/central-ctx
9、重启nexus
注意:觉得麻烦可以直接下载:https://pan.baidu.com/s/1qzllVcr5nqiX2EKVlof5Wg,里面包含所有需要的文件
三、maven配置优化及设置
1、优化maven里的setting配置
#设置maven本地仓库地址
<localRepository>F:\maven</localRepository>
#设置快照版本服务
<servers>
#对应exclipe/idea项目中parent,pom.xml里的distributionManagement
<id>nexusSnapshot</id>
<username>deployment</username>
<password>deployment123</password>
</server>
</servers>
#设置镜像
<mirrors>
<mirror>
<id>nexusSnapshot</id>
#全部走nexus私服
<mirrorOf>*</mirrorOf>
<name>nexus</name>
<url>http://192.168.1.32:8082/nexus/content/groups/public/</url>
</mirror>
</mirrors>
#配置仓库地址
<profiles>
<profile>
<id>common</id>
<repositories>
<repository>
<id>nexusSnapshot</id>
<name>snapshots</name>
<url>http://*</url>
</repository>
<repository>
<id>nexusCentral</id>
<name>nexusCentral</name>
<url>http://*</url>
</repository>
<repository>
<id>nexusReleases</id>
<name>nexusReleases</name>
<url>http://*</url>
</repository>
</repositories>
#配置编译的jdk
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles> <activeProfiles>
<activeProfile>common</activeProfile>
</activeProfiles>
2、修改pom.xml
<distributionManagement>
<repository>
<id>nexusSnapshot</id>
<name>nexusSnapshot</name>
<url>http://192.168.1.32:8082/nexus/content/repositories/snapshots/</url>
</repository>
</distributionManagement>
四、nexus仓库与仓库组
1、nexus内置仓库
登陆用户,单击Nexus界面左边导航栏中的Repositories链接,就可以看到内置的仓库
2、从中可以看到仓库有四种类型:
- group(仓库组)
- hosted(宿主)
- proxy(代理)
- virtual(虚拟)
3、每个仓库的格式为maven2或者maven1。此外,仓库还有一个属性为Policy(策略),表示该仓库为发布(Release)版本仓库还是快照(Snapshot)版本仓库。最后两列的值为仓库的状态和路径。
Maven Central:该仓库代理Maven中央仓库,其策略为Release,因此只会下载和缓存中央仓库中的发布版本构件。
Releases:这是一个策略为Release的宿主类型仓库,用来部署组织内部的发布版本构件。
Snapshots:这是一个策略为Snapshot的宿主类型仓库,用来部署组织内部的快照版本构件。
3rd party:这是一个策略为Release的宿主类型仓库,用来部署无法从公共仓库获得的第三方发布版本构件。
Apache Snapshots:这是一个策略为Snapshot的代理仓库,用来代理Apache Maven仓库的快照版本构件。
Codehaus Snapshots:这是一个策略为Snapshot的代理仓库,用来代理Codehaus Maven仓库的快照版本构件。
Google Code:这是一个策略为Release的代理仓库,用来代理Google Code Maven仓库的发布版本构件。
java.net-Maven 2:这是一个策略为Release的代理仓库,用来代理java.net Maven仓库的发布版本构件。
Public Repositories:该仓库组将上述所有策略为Release的仓库聚合并通过一致的地址提供服务。
Public Snapshot Repositories:该仓库组将上述所有策略为Snapshot的仓库聚合并通过一致的地址提供服务。
4、Nexus仓库分类的概念

五、maven生命周期
clean lifecycle : 构建前的清理工作
• pre-clean 执行一些需要在clean之前完成的工作
• clean 移除所有上一次构建生成的文件
• post-clean 执行一些需要在clean之后立刻完成的工作
Default lifecycle: 构建的核心部分,编译、打包、部署、上传
• validate 项目及所必须的环境验证
• initialize 初始化构建状态,例如设置属性或创建目录。
• 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 将最终的包复制到远程的仓库,以让其它开发人员与项目共享。
site lifecycle:项目报告生成,站点文档生成
• pre-site 执行一些需要在生成站点文档之前完成的工作
• site 生成项目的站点文档
• post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
• site-deploy 将生成的站点文档部署到特定的服务器上
我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=ej6dteqjfixd
nexus私服搭建及maven生命周期的更多相关文章
- ava Maven项目之Nexus私服搭建和版本管理应用
目录: Nexus介绍 环境.软件准备 Nexus服务搭建 Java Maven项目版本管理应用 FAQ 1.Nexus介绍 Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维 ...
- Maven实战:Maven生命周期
前言 之前有写过一篇文章Maven实战,介绍了Maven的一些基本概念,以及对于一个初学者而言的Maven基础知识,当时在我看来掌握了这些基本是够用的. 随着工作的深入,越来越感觉对于Maven的理解 ...
- Java-Maven(三):Maven坐标、Maven仓库、Maven生命周期
之前通过学习对maven命令有了部分了解,但是只是知道maven是用来做什么.但到目前位置还不足以全面的了解maven,为更全面的了解maven,需要学习以下几个概念:Maven坐标.Maven仓库. ...
- nexus私服搭建及信息配置
nexus私服搭建及信息配置 下载 登录nexus官网下载nexus安装包https://help.sonatype.com/repomanager2/download/download-archiv ...
- (十二)Maven生命周期和插件
除了坐标.依赖以及仓库之外,Maven的另外两个核心概念是生命周期和插件.在有关Maven的日常使用中,命令行的输入往往就对应了生命周期,如mvn package就表示执行默认生命周期阶段packag ...
- Maven生命周期小记
1.Maven生命周期是为了所有的构建过程进行抽象和统一.Maven从大量的项目和构建工具中学习和反思,总结了一套高度完善.易扩展的生命周期.这个生命周期包含了项目的清理.初始化.编译.测试.打包.集 ...
- maven权威指南学习笔记(四)—— maven生命周期(lifecycle)
定义: 生命周期是包含在一个项目构建中的一系列有序的阶段 举个例子来说就是maven 对一个工程进行: 验证(validate) -- 编译源码(compile) -- 编译测试源码(test-com ...
- maven生命周期和插件
maven生命周期和插件 生命周期 maven的生命周期有三套,互相独立.每个生命周期含有不同阶段,常用如下 clean 清理项目 pre-clean 执行清理前需要完成的工作 clean 清理上一次 ...
- [maven] 生命周期和插件
maven生命周期和插件 生命周期 maven的生命周期有三套,互相独立.每个生命周期含有不同阶段,常用如下 clean 清理项目 pre-clean 执行清理前需要完成的工作 clean 清理上一次 ...
随机推荐
- 43个优秀的Swift开源项目推荐
"轮子" 工具类 项目 开发者 备注 SwiftyJSON tangplin, lingoer GitHub 上最为开发者认可的 JSON 解析类 Dollar.swift Ank ...
- HBase 健康检查工具
在HBase运维中 最常用的工具就是hbck. 查看整个集群的表状况.如果region很多,建议慎重使用,会比较慢,而采用(3). (1)hbase hbck 详细显示集群状况. (2)hbase ...
- 提高HBase写性能
以下为使用hbase一段时间的三个思考,由于在内存充足的情况下hbase能提供比较满意的读性能,因此写性能是思考的重点.希望读者提出不同意见讨论 1 autoflush=false的影响 无论是官方还 ...
- obj-c编程10:Foundation库中类的使用(6)[线程和操作队列]
任何语言都不能避而不谈线程这个东东,虽然他是和平台相关的鸟,虽说unix哲学比较讨厌线程的说...线程不是万能灵药,但有些场合还是需要的.谈到线程就不得不考虑同步和死锁问题,见如下代码: #impor ...
- Python 3.7 将引入 dataclass 装饰器
简评:Python 3.7 将于今年夏天发布,Python 3.7 中将会有许多新东西,最激动人心的新功能之一是 dataclass 装饰器. 什么是 Data Class 大多数 Python 开发 ...
- Linux命令之文件搜索
locate 文件名 locate只能搜索文件名,不能搜索文件大小.搜索速度快. locate并不会搜索到那些新加入的文件.新加入文件后,使用updatedb,更新数据库后,再使用locate搜索. ...
- JQuery DOM操作 、属性和CSS样式操作、其他函数
DOM操作 1.在div1内部最后追加一个节点 $("#div1").append("<img src='../01-HTML基本标签/img/Male.gif'/ ...
- 自动红眼移除算法 附c++完整代码
说起红眼算法,这个话题非常古老了. 百度百科上的描述: "红眼"一般是指在人物摄影时,当闪光灯照射到人眼的时候,瞳孔放大而产生的视网膜泛红现象. 由于红眼现象的程度是根据拍摄对象色 ...
- unity零基础开始学习做游戏(二)让你的对象动起来
-------小基原创,转载请给我一个面子 小基认为电子游戏与电影最重要的区别就是交互,如果电子游戏没有让你输入的交互功能的话,全程都"只可远观,而不可鼓捣"的话,你可能是在看视频 ...
- linux安装VLAN,系统怎么划分VLAN打标签上交换机
前几天公司一台物理机需要连接公网,但是公网需要网卡打标签上去. 由于没有做过linux主机划分VLAN的操作,因此去查了一下,需要利用vconfig这个命令. 但是纠结的是,系统源中没有这个包.(很坑 ...