简介
在企业中有很多这样的场景,比如项目组A 需要使用项目组B的代码模块,又或者需要在项目中使用第三方的jar包(在中央仓库没有的jar)。所以一些互联网公司经常会搭建私服。本文主要介绍私服的搭建和使用。
私服搭建
nexus下载
官网下载速度实在不敢恭维,网上可以使用别人下载好的,然后上传到linux上。
解压安装包
使用命令解压: tar -zxvf nexus-3.19.1-01-unix.tar.gz
解压成功,可以看到多个两个目录。
nexus-3.19.1-01目录:运行私服所需的程序文件
sonatype-work目录: 私服的仓库,上传和从中央仓库下载的jar都存储在这个目录。
启动nexus服务
到/usr/local/software/nexus/nexus-3.19.1-01/bin 安装目录执行
./nexus start
出现如下所示
本地登录nexus客户端管理界面,默认端口8081,端口在配置文件/etc/nexus-defalut.properties 中可以修改。
正常登录成功,说明启动成功了。 注意关闭服务器防火墙才能访问。
注意默认账号密码,在nexus3已经不是admin/admin123了, 而是随机密码。在下方的目录中,
Your admin user password is located in /usr/local/software/nexus/sonatype-work/nexus3/admin.password 。
nexus管理界面
我这里使用的是3.19.1版本,和2版本界面改变较大,不过重要的内容一样。
点击repositories菜单,查看所有的仓库。
其中type列说明如下
类型 | 说明 |
hosted | 用于本地上传的仓库,使用管理界面的path url可以把本地的jar上传到私服 |
proxy | 从远程中央仓库下载 |
group | 本地下载jar配置的路径url, 会自动根据配置的仓库中下载jar |
group配置仓库组
总之就是,
1、下载jar包,使用group 类型,
2、上传jar包,需要上传到哪个仓库就配置哪个仓库。
上传本地代码到私服
1、打开本地环境变量配置的maven目录,打开settings配置文件。
在servers标签中配置私服的账号密码和id。一般会有snapshots和releases 两个id,用于上传的jar上传到不同的仓库中。
2、使用idea为例,上传本地的代码上私服
maven不使用idea自带的,需要修改成本地的maven.然后在pom中加入部署的配置。最后点击右侧maven命令:deploy。
<distributionManagement>
<snapshotRepository>
<id>snapshots</id>
<url>http://192.168.211.130:8081/repository/maven-snapshots/</url>
</snapshotRepository>
<repository>
<id>releases</id>
<url>http://192.168.211.130:8081/repository/maven-releases/</url>
</repository>
</distributionManagement>
然后在本地仓库和私服上都可以看到代码已经上传。
从私服下载jar包
删除本地仓库的maven-test的jar包,重新创建个maven项目,测试是否可以从私服下载jar.
1、在settings文件中配置profile。设置可以下载jar包的配置如下
<!--下载jar包的配置-->
<profile>
<id>dev</id>
<repositories>
<repository> <!--可配置多个仓库,则需多个仓库id不重复-->
<id>nexus</id>
<url>http://192.168.211.130:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories><!--maven的运行依赖插件,也需要从私服下载插件-->
<pluginRepositorie>
<id>public</id>
<name>Public Repositories</name>
<url>http://192.168.211.130:8081/repository/maven-public/</url>
</pluginRepositorie>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>dev</activeProfile>
</activeProfiles>
2、重新启动一个项目,在pom中引入依赖。
说明 可以正确连接到私服,但是nexus3的权限问题,导致下载jar包出错。
解决办法:
在nexus控制台设置允许匿名访问。
然后就可以正常下载jar包了。
把私服设置成镜像
安装第三方jar到本地仓库
使用如下命令
#进入jar目录运行。
mvn install:install-file -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.2.78 -Dfile=fastjson-1.2.78.jar -Dpackaging=jar
# 打开cmd直接运行,绝对路径
mvn install:install-file -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.2.78 -Dpackaging=jar -Dfile=C:\dev_tools\maven-repository\fastjson-1.2.78.jar
安装第三方jar到私服
安装第三方jar到私服,需要先在settings中把登录信息
#进入jar目录运行。
mvn deploy:deploy-file -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.2.78 -Dpackaging=jar -Dfile=fastjson-1.2.78.jar -url=http://192.168.211.130:8081/repository/thirdparty/ -DrepositoryId=thirdparty
# 打开cmd直接运行,绝对路径
mvn deploy:deploy-file -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.2.78 -Dpackaging=jar -Dfile=C:\dev_tools\maven-repository\fastjson-1.2.78.jar -url=http://192.168.211.130:8081/repository/thirdparty/ -DrepositoryId=thirdparty
谢谢,有错误请帮忙指正,共同进步