liunx 安装 nexus maven 私服

本文详细介绍了如何使用Sonatype Nexus搭建私有Maven仓库,包括环境准备、Nexus安装、配置认证信息、远程仓库和仓库镜像等步骤,确保开发者能够安全高效地管理和访问私有构件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 . 私服简介

  私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。

                                                

  我们可以使用专门的 Maven 仓库管理软件来搭建私服,比如:Apache ArchivaArtifactorySonatype Nexus。这里我们使用 Sonatype Nexus。

 

第一步:  jdk  已安装,  没安装的话 ,先安装jdk: https://blog.youkuaiyun.com/tang_jian_dong/article/details/83089046

 

第二步: 下载  nexus: https://help.sonatype.com/repomanager2/download   ,

               下载  oss  (open source software)  开源版

               选择liunx版本

 

 

下载nexus 后上传至liunx,   解压文件: tar -zxvf   nexus-2.14.10-01-bundle.tar.gz

解压后,有这两个文件夹:

         nexus-2.12.0-01: 是nexus的核心文件

         sonatype-work :maven下载jar存放地址

 

第一:设置java 地址

vim /nexus-2.14.10.01/bin/jsw/conf/wrapper.conf

将 wrapper.java.command = java 改为  wrapper.java.command = jdk目录/bin/java

如果出现

- ****************************************

WARNING - NOT RECOMMENDED TO RUN AS ROOT

****************************************

If you insist running as root, then set the environment variable RUN_AS_USER=root before running this script.

 

那么默认情况下,不建议以root用户运行Nexus,可以修改bin/nexus中的配置跳过警告(修改RUN_AS_USER=root)

也可以 export RUN_AS_USER=root

 

然后在bin目录下   ./nexus  start 

 

将 nexus 设为开机启动:

vim /etc/rc.d/rc.local 

加入: 安装目录路径下/bin/nexus start.

su 你的用户名  -lc "/software/nexus/nexus-2.14.10-01/bin/nexus start"
 

保存退出后,将文件添加可执行权限,

sudo chmod +x rc.local 

 

reboot 后,  service nexus status  查看是否正常开机启动

 

启动后就可以访问了,  ip地址: 默认端口8081/nexus/#welcome.   默认的登录用户名密码是   admin/admin123

 

 

修改配置

 

 

 

 

 将 Available Repositories 的 仓库移到左边

 

 

创建账户:

 

1:远程仓库验证:

大部分公共的远程仓库无须认证就可以直接访问,但我们在平时的开发中往往会架设自己的Maven远程仓库,出于安全方面的考虑,我们需要提供认证信息才能访问这样的远程仓库。配置认证信息和配置远程仓库不同,远程仓库可以配置在settings.xml文件中,也可直接在pom.xml中配置,后面会分别举例说明,但是认证信息必须配置在settings.xml文件中。在settings.xml中配置认证信息更为安全。如下:在settings.xml中配置<servers>节点,用的账号为上面我们创建的账户。

 

<settings>
      <!--配置远程仓库认证信息-->
      <servers>
          <server>
              <id>bbsnexus</id>
              <username>licui</username>
              <password>a111111</password>
          </server>
     </servers>
 </settings>

上面代码我们配置了一个id为bbsnexus的远程仓库认证信息。Maven使用settings.xml文件中的servers元素及其子元素server配置仓库认证信息。认证用户名为licui,认证密码为a111111。这里的关键是id元素,id没有要求,随便定义,但是后面配置远程仓库的id必须和这里的id保持一致。正是这个id将认证信息与仓库配置联系在了一起。

 

2:配置远程仓库:

 

repository:在repositories元素下,可以使用repository子元素声明一个或者多个远程仓库。

id:仓库声明的唯一id,尤其需要注意的是,Maven自带的中央仓库使用的id为central,如果其他仓库声明也使用该id,就会覆盖中央仓库的配置。

name:仓库的名称,让我们直观方便的知道仓库是哪个,暂时没发现其他太大的含义。

url:指向了仓库的地址,一般来说,该地址都基于http协议,Maven用户都可以在浏览器中打开仓库地址浏览构件。

releases和snapshots:用来控制Maven对于发布版构件和快照版构件的下载权限。需要注意的是enabled子元素,该例中releases的enabled值为true,表示开启JBoss仓库的发布版本下载支持,而snapshots的enabled值为false,表示关闭JBoss仓库的快照版本的下载支持。根据该配置,Maven只会从JBoss仓库下载发布版的构件,而不会下载快照版的构件。

layout:元素值default表示仓库的布局是Maven2及Maven3的默认布局,而不是Maven1的布局。基本不会用到Maven1的布局。

其他:对于releases和snapshots来说,除了enabled,它们还包含另外两个子元素updatePolicy和checksumPolicy。

元素updatePolicy用来配置Maven从远处仓库检查更新的频率,默认值是daily,表示Maven每天检查一次。其他可用的值包括:never-从不检查更新;always-每次构建都检查更新;interval:X-每隔X分钟检查一次更新(X为任意整数)。

元素checksumPolicy用来配置Maven检查校验和文件的策略。当构建被部署到Maven仓库中时,会同时部署对应的检验和文件。在下载构件的时候,Maven会验证校验和文件,如果校验和验证失败,当checksumPolicy的值为默认的warn时,Maven会在执行构建时输出警告信息,其他可用的值包括:fail-Maven遇到校验和错误就让构建失败;ignore-使Maven完全忽略校验和错误。

 

3:配置仓库镜像:

 

 

4.上传jar包到远程仓库

1)将已有的项目打成jar包上传到私服服务器

首先需要在pom.xml中配置上传仓库的地址,配置distributionManagement元素,仓库地址指向前面自定义的仓库bbsid

 

<distributionManagement>
        <repository>
            <id>bbsnexus</id>
            <name>bbsidrepository</name>
            <url>http://127.0.0.1:8081/nexus/content/repositories/bbsid</url>
        </repository>
</distributionManagement>

 

distributionManagement包含repository和snapshotRepository子元素,前者表示发布版本(稳定版本)jar包的仓库,后者表示快照版本(开发测试版本)的仓库。

这两个元素都需要配置id、name和url,id为远程仓库的唯一标识,很重要,name只是为了方便人阅读,关键的url表示该仓库的地址。

往远程仓库部署jar包的时候,需要认证,配置认证的方式为id,一定要与前面settings中server的id保持一致。

如果项目当前的版本是快照版本,则部署到快照版本的仓库地址,否则就部署到发布版本的仓库地址,因为这里只是测试演示,前面只创建了Release版本的仓库bbsid,所以省略了snapshotRepository。

配置正确后,定位到要上传的项目目录,运行命令mvn clean deploy,Maven就会直接将项目打包生成的jar包部署到配置对应的远程仓库中。

 

2)上传第三方jar包到远程仓库

      方式一  (假设发布仓库为bbsid,发布Jar包为zbb-sms-0.0.1.jar):

      A.  settings.xml中配置认证信息。

      B. 定位到要上传的jar包的目录,执行“ mvn deploy:deploy-file -DgroupId=com.zxp.test -DartifactId=sms -Dversion=1.0 -Dpackaging=jar -Dfile=zbb-sms-0.0.1.jar -Durl=http://127.0.0.1:8081/nexus/content/repositories/bbsid -DrepositoryId=bbsnexus”命令。

        说明:deploy:deploy-file表示发布独立的文件。

                 groupId、artifactId和version可根据需要设定。(我们要传的包为zbb-sms-0.0.1.jar,但是命令里指定-Dversion=1.0-DartifactId=sms,所以最终上传到仓库后的名称为sms-1.0.jar

                 url为Nexus服务器中需要上传的仓库路径。

                repositoryId与server的id必须一致。

 

方式二 Nexus控制台直接上传jar包 (假设发布仓库为bbsid,发布Jar包为mysql-connector-java-5.1.43.jar):

 在Repositories列表中选择Releases,点Artifact Upload,指定GAV Definition为“GAV Parameters”,然后输入相应的groupId、artifactId和version、Packaging,再点击“Select Artifact(s) to Upload...”选择指定的Jar文件,点击“Add ActifactId”添加到Actifacts框,最后点“Upload Artifact(s)”即可。

 

 

 

阿里云中央仓库地址:

http://maven.aliyun.com/nexus/content/groups/public/

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值