参考:http://blog.csdn.net/typa01_kk/article/details/49228873
http://blog.csdn.net/wang379275614/article/details/43940259 (配置仓库等参考)
http://blog.csdn.net/liujiahan629629/article/details/39272321 (配置仓库等参考)
http://www.itnose.net/detail/6178985.html (上传jar到第3方库)
http://blog.csdn.net/zwc0910/article/details/17349111 (maven如何使用私服)
http://www.54tianzhisheng.cn/2017/10/14/Nexus3-Maven/ (Centos7 搭建最新 Nexus3 Maven 私服 )
Nexus是一个强大的Maven仓库管理器,
它极大地简化了自己内部仓库的维护和外部仓库的访问。
利用Nexus你可以只在一个地方就能够完全控制访问和部署在你所维护仓库中的每个Artifact。
Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。
Nexus使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过m2eclipse与Eclipse集成使用。
Nexus支持WebDAV与LDAP安全身份认证。
注:最终启动,如果远程访问关闭,或者是stoped的nexus的jre版本和本地jre的version不符合(一般1.7就ok)!
1、我下载的是 nexus-2.13.0-01-bundle.tar.gz, 安装的jdk1.7版本
安装nexus,本地仓库默认的jar包存储位置是:/sonatype-work/nexus/storage/central。由于Central仓库占用存储较大,所以要注意存储位置。
我的安装位置/home/nexus目录下的,解压nexus-2.13.0-01-bundle.tar.gz后
drwxr-xr-x. 8 1001 1001 4096 Apr 12 22:11 nexus-2.13.0-01
drwxr-xr-x. 3 1001 1001 4096 Apr 12 22:21 sonatype-work
2、修改配置文件
[root@localhost nexus]# vim nexus-2.13.0-01/conf/nexus.properties
# Jetty section
application-port=8081
application-host=0.0.0.0
nexus-webapp=${bundleBasedir}/nexus
nexus-webapp-context-path=/nexus #可以去掉nexus,保留/
# Nexus section nexus-work是jar包存放地址,可以修改为其它地址,也可以不修改
nexus-work=${bundleBasedir}/../sonatype-work/nexus
runtime=${bundleBasedir}/nexus/WEB-INF
3、修改jetty配置
[root@localhost nexus]# vim nexus-2.13.0-01/bin/nexus
# Set this to the root of the Nexus installation
#NEXUS_HOME=".." #将这行注释掉,修改为下边的,
NEXUS_HOME="/home/nexus/nexus-2.13.0-01"
# If specified, the Wrapper will be run as the specified user.
# IMPORTANT - Make sure that the user has the required privileges to write into the Nexus installation directory.
# NOTE - This will set the user which is used to run the Wrapper as well as
# the JVM and is not useful in situations where a privileged resource or
# port needs to be allocated prior to the user being changed.
#RUN_AS_USER=
RUN_AS_USER=root #添加这行
# Application
APP_NAME="nexus"
APP_LONG_NAME="Nexus OSS"
4、将nexus设置为开机启动
[root@localhost nexus]# cd nexus-2.13.0-01/bin
[root@localhost bin]# cp ./nexus /etc/rc.d/init.d/
[root@localhost bin]# cd /etc/rc.d/init.d/
[root@localhost init.d]# chkconfig --add nexus
[root@localhost init.d]# chkconfig --list | grep nexus
nexus 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@localhost init.d]# chkconfig nexus on
[root@localhost init.d]# chkconfig --list | grep nexus
nexus 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@localhost init.d]#
说明:
nexus的仓库类型分为以下四种:
group: 仓库组,用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可。
hosted:宿主 ,通常我们会部署自己的构件到这一类型的仓库。比如公司的第二方库。
proxy:代理,它们被用来代理远程的公共仓库,如maven中央仓库。
virtual:虚拟
仓库组和多个仓库:
Public Repositories: 仓库组
3rd party: 无法从公共仓库获得的第三方发布版本的构件仓库
Apache Snapshots: 用了代理ApacheMaven仓库快照版本的构件仓库
Central: 用来代理maven中央仓库中发布版本构件的仓库
Central M1 shadow: 用于提供中央仓库中M1格式的发布版本的构件镜像仓库
Codehaus Snapshots: 用来代理CodehausMaven 仓库的快照版本构件的仓库
Releases: 用来部署管理内部的发布版本构件的宿主类型仓库
Snapshots:用来部署管理内部的快照版本构件的宿主类型仓库
5、启动nexus
[root@localhost init.d]# cd /home/nexus/nexus-2.13.0-01/bin/
[root@localhost bin]# ./nexus start #启动nexus
****************************************
WARNING - NOT RECOMMENDED TO RUN AS ROOT
****************************************
Starting Nexus OSS...
Started Nexus OSS.
6、浏览器查看是否OK!
http://172.17.123.137:8081/nexus/
默认的用户名/密码是:admin、admin123,登录后自己修改密码;
7、如果想从远处中央库下jar包,则需要开启远处索引
登录后,我这个版本点击左侧菜单 Views/Repositories 下的 Repositories 菜单;Apache Snapshots和Central,分别展示如下图:
保存后,就它就会自动下载中央库的jar包了,点击configuration 菜单前的Browse Index 可以查看是否下载成功;在左边菜单栏里面有个Artifact Search, 在输入框里面输入你想要搜索的构件名字,比如:maven, 那么查询结果就出出来了。
8、管理本地仓库
我们前面讲到类型为hosted的为本地仓库,Nexus预定义了3个本地仓库,分别是Releases, Snapshots, 3rd Party. 分别讲一下这三个预置的仓库都是做什么用的:
Releases:
这里存放我们自己项目中发布的构建, 通常是Release版本的, 比如我们自己做了一个FTP Server的项目, 生成的构件为ftpserver.war, 我们就可以把这个构建发布到Nexus的Releases本地仓库. 关于符合发布后面会有介绍.
Snapshots:
这个仓库非常的有用, 它的目的是让我们可以发布那些非release版本, 非稳定版本, 比如我们在trunk下开发一个项目,在正式release之前你可能需要临时发布一个版本给你的同伴使用, 因为你的同伴正在依赖你的模块开发, 那么这个时候我们就可以发布Snapshot版本到这个仓库, 你的同伴就可以通过简单的命令来获取和使用这个临时版本.
3rd Party:
顾名思义, 第三方库, 你可能会问不是有中央仓库来管理第三方库嘛,没错, 这里的是指可以让你添加自己的第三方库, 比如有些构件在中央仓库是不存在的. 比如你在中央仓库找不到Oracle 的JDBC驱动, 这个时候我们就需要自己添加到3rdparty仓库。
首先我们可以创建本地仓库:Views/Repositories 下的 Repositories 菜单展示界面上添加仓库,如下图:
出现界面如下所示:
我填写:chbigdata 和 chbigdata repository 保存就OK;
9、创建仓库组
Nexus 中仓库组的概念是Maven没有的,在Maven看来,不管你是hosted也好,proxy也好,或者group也好,对我都是一样的,我只管根据 groupId,artifactId,version等信息向你要构件。为了方便Maven的配置,Nexus能够将多个仓库,hosted或者 proxy合并成一个group,这样,Maven只需要依赖于一个group,便能使用所有该group包含的仓库的内容。
Nexus 中默认自带了一个名为“Public Repositories”组,点击该组可以对他保护的仓库进行调整,把刚才建立的公司内部仓库zfy repostiory加入其中,这样就不需要再在maven中明确指定内部仓库 的地址了。
创建仓库组还是创建仓库的地方点击,如下图:
弹出相关界面,说明如下
10、创建代理仓库(可选)
点击菜单栏上的Add按钮后选择Proxy Repository,看到如下所示配置界面:
到此,基本上就OK了,
11、项目中如何使用私服
maven 的setting设置;通过前面介绍可以了解到, 我们可以建立多个proxy代理仓库,hosted本地仓库, 如果没有仓库组的概念,我们如果需要引用这些仓库的是时候需要一一加入到我们的setting.xml里面去, 有了仓库的组的概念, 我们只需要做一次引用就可以了,把我们需要的仓库加入到仓库组即可。如下图:
仓库组默认包含本地仓库Releases,snapshots, 3rd party和代理仓库MavenCentral. 你可以在Configuration配置页添加仓库到这个仓库组. 如果需要你还可以创建一个仓库组,在Repositories菜单处选add-->Repository Group即可
12、 项目中配置Nexus仓库
如果只有一个项目,可以配置在项目的pom文件中
如果有多个项目都使用Nexus的配置,可以将如上皮遏制放到Maven的Settings文件中:
13、配置仓库镜像
默认的,如果本地仓库找不到依赖的构件,这时需要东西时先到Nexus上找,如果发现Nexus服务关闭后,会自动到中央仓库找。
如果我们想覆盖中央仓库的默认地址,强制依赖的东西都到Nexus中去找,即使Nexus关闭也不会到中央工厂去下载:
修改Maven的Settings文件:
注意,如果本地仓库有东西,但Nexus中没有,需要将该东西考到Nexus仓库中,然后更新仓库索引:
相关推荐
### 在CentOS下使用Nexus搭建Maven私库的安装教程 #### 一、引言 随着企业级项目规模的不断扩大和技术栈的日益复杂,如何有效地管理项目中的依赖成为了一个重要的问题。Maven作为Java生态中最流行的构建工具之一,...
通过以上步骤,您将在CentOS7环境中成功搭建起一个功能齐全的Nexus3 Maven私有仓库,方便管理和分发内部使用的Java库。记得定期备份Nexus3的工作目录,以防止数据丢失。同时,根据实际需求调整仓库配置,以满足团队...
安装JAVA 在这里使用yum来安装java的jdk,可以使用指令yum search java | grep jdk来查看yum下提供了哪些jdk版本。这里选择1.8版本,安装指令为:sudo yum install java-1.8.0-openjd 安装完毕后还需要修改环境变量...
- **proxy更改**:在Nexus管理界面,你可以创建代理仓库(proxy repository),将它指向你希望镜像的外部公共Maven仓库,如Central Repository。 - **hosted更改**:设置自定义的托管仓库(hosted repository),...
Nexus是Sonatype公司开发的一款开源的仓库管理器,常用于Maven、Gradle等构建工具的依赖管理和部署。在CentOS 7上安装Nexus 3,你需要遵循以下步骤: 1. **环境准备**: - 确保你的CentOS 7系统是最新的,可以通过...
这时,搭建一个私有的Maven仓库,即Maven私服,就显得尤为重要。Nexus作为一个强大的仓库管理器,能够很好地解决这些问题。 Nexus提供了对Maven、npm、Gradle等多种构建工具的支持,可以作为代理仓库,缓存从中央...
在本文中,我们将深入探讨如何在CentOS7操作系统上安装Nexus,这是一款强大的软件仓库管理工具,常用于管理Java应用程序的Maven、Gradle和其他依赖。以下是对每个安装步骤的详细说明: 1. **下载Nexus** 首先,你...
Maven仓库包含了大量的插件,覆盖了从源代码格式化到单元测试、代码覆盖率报告、部署等各种功能。 总之,Apache Maven 3.6.0作为一款强大的Java项目管理工具,提供了自动化构建、依赖管理和项目信息管理等功能,极...
而Sonatype Nexus则是一款优秀的仓库管理系统,能够帮助开发者高效地管理Maven项目中的依赖关系,提供私有仓库服务。本文将详细介绍如何在CentOS 6.6 Final环境下搭建并配置Nexus私有仓库,并结合Maven进行使用。 #...
### Maven 私服 Nexus 介绍与安装使用 #### 一、Maven 私服 Nexus 概述 Maven 是一个非常流行的 Java 项目构建管理工具,它能够帮助开发者自动化构建过程,包括编译、测试、打包等环节。而 Maven 仓库(Repository...
Nexus是Sonatype公司提供的开源Maven仓库管理系统,它不仅能够作为代理仓库,缓存和分发远程Maven仓库的依赖,还支持自定义的本地仓库,用于存储和发布内部项目构建的jar包。Nexus-2.14.8-01-bundle.zip包含了运行...
Nexus是Sonatype公司开发的一款强大的Maven仓库管理器,它可以帮助开发者管理和分发软件构件,如JARs、WARs、NPM包等。在Linux/CentOS系统上安装Nexus 3.31.0是软件生命周期管理的重要一环,特别是对于Java开发团队...
Nexus仓库管理器是一款专业的软件仓库管理工具,广泛用于管理各种软件组件,例如源代码、二进制包以及配置文件等。它支持多种协议,包括Maven、npm、NuGet、P2、RubyGems、YUM等,并提供强大的权限控制与分发机制。...
Nexus是Sonatype公司开发的一款强大的Maven仓库管理器,它可以作为私有的Maven仓库,用于存储和分发内部使用的库,同时也可以作为代理仓库,缓存远程的Maven中央仓库。 1. **搭建背景**: 搭建Nexus私服可以方便地...
通过以上步骤,你已经成功在Linux上安装了Nexus仓库管理器。现在,你可以开始使用它来管理你的软件包,提高开发效率并确保代码质量。记得及时更新Nexus和JDK到最新版本,以获取最新的安全修复和功能改进。
在Linux系统中安装Maven是Java开发者经常遇到的任务,因为Maven是一个强大的项目管理和构建工具。下面是详细的Linux安装Maven的步骤,适用于多种Linux发行版,包括Ubuntu、CentOS、Debian等。 **1. 更新系统** 在...
本文档介绍了使用Nexus作为Maven的仓库管理工具的详细信息,内容涵盖Nexus的安装、配置、使用和管理等方面。 首先,Nexus是Sonatype公司的一款产品,存在开源版(Nexus OpenSource)和专业版(Nexus Professional)...