maven私服搭建与使用教程
概述
在使用maven进行Java项目的开发过程中,难免会有些公共的私有库,这些库是不太方便放到中央仓库的,可以通过Nexus搭建一个私有仓库。
Nexus部署
下载安装包
通过下载安装包nexus-3.47.1-01-unix.tar.gz。
安装
解压安装包
Nexus安装非常简单,只需要解压就可以了。假设安装目录为/opt/software/nexus
tar zxvf nexus-3.47.1-01-unix.tar.gz
解压之后,在/opt/software/nexus
目录下,有2个目录:
- nexus-3.47.1-01:程序目录,包含了 nexus运行需要的组件;
- sonatype-work:数据目录,包含了 nexus 管理的所有存储库、组件和其他数据。
启动程序
执行如下命令,启动nexus:
nexus-3.47.1-01/bin/nexus start
启动之后,就可以使用。默认访问地址为:http://localhost:8081/
安装问题集锦
找不到jdk
执行启动命令,找不到jdk。
No suitable Java Virtual Machine could be found on your system. The version of the JVM must be 1.8. Please define INSTALL4J_JAVA_HOME to point to a suitable JVM.
由于Nexus只支持Java8,如果机器上的JDK版本高于8,则需要另外安装下Java8,并通过配置环境变量INSTALL4J_JAVA_HOME
来解决。环境变量如下:
# INSTALL4J_JAVA_HOME是Java8的JAVA_HOME export INSTALL4J_JAVA_HOME='/opt/jdk1.8.0_202'
启动后,8081端口打不开,无法访问
确认下,服务器是否开启了防火墙
默认密码
Nexus的默认密码放在${HOME}/sonatype-work/nexus/admin.password
文件里,我的就是/opt/software/nexus/sonatype-work/nexus/admin.password
,通过如下命令,拿到密码就可以登录了
cat /opt/software/nexus/sonatype-work/nexus/admin.password
使用
从私服里下载Jar
在需要下载私包的pom文件内,配置私服地址就可以了,具体如下:
<repositories> <repository> <!-- Maven 自带的中央仓库使用的Id为central 如果其他的仓库声明也是用该Id就会覆盖中央仓库的配置 --> <id>raina-releases</id> <layout>default</layout> <name>releases</name> <!-- 这里的IP改成具体服务器IP --> <url>http://{$IP}:8081/nexus/content/repositories/releases</url> </repository> </repositories>
发布私包
配置Nexus密码
在Maven的settings.xml里(一般路径为:${MVN_HOME}/conf/settings.xml),添加如下配置:
<server> <id>customNexus</id> <username>admin</username> <!-- admin的登录密码,使用默认密码登录后,会修改成自定义的密码 --> <password>admin123</password> </server>
pom.xml里添加仓库配置
在待发布的项目pom.xml添加如下配置:
<distributionManagement> <repository> <id>customNexus</id> <name>custom Nexus Release Repository</name> <!-- 这里的IP改成具体服务器IP --> <url>http://{$IP}:8081/repository/maven-releases/</url> <layout>default</layout> </repository> </distributionManagement>
发布
执行如下命令,则可以将私包发布到私服了:
mvn clean deploy
发布问题
如果包无法delopy,可以修改仓库策略:
到此这篇关于maven私服搭建与使用的文章就介绍到这了,更多相关maven私服搭建内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
关于Scanner中nextInt()、nextLine()等方法总结与问题解决
这篇文章主要介绍了关于Scanner中nextInt()、nextLine()等方法总结与问题解决,具有很好的参考价值,希望对大家有所帮助。2022-11-11spring中ApplicationListener的使用小结
ApplicationListener是spring提供的一个监听器,本文主要介绍了spring中ApplicationListener的使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2024-07-07
最新评论