查看原文
其他

Maven精选系列--私库搭建及使用

2017-07-22 javastack Java技术栈


为什么要使用私库


maven默认去远程中央仓库下载JAR包的,访问国外网络相当慢,如果团队每个人都去下载一遍无疑是网络的浪费,当然也可以添加国内的镜像,如阿里的比较稳定,但如果想添加远程不存在的像第三方公司的JAR包就比较麻烦。


所以,使用私库,第一,开源包只要有一个人下载过其他人就不需要再下载了,直接从私库下载即可。第二,可以用来管理第三方公司的或者远程仓库不存在的JAR包,或者公司不开源的JAR包。


推荐国内稳定的镜像,如阿里的

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


nexus下载安装


首先去sonatype官网下载nexus包,要下载开源免费版的OSS版,即Open Source Software。


https://www.sonatype.com/nexus-repository-oss



下载最新的3.X的版本,这里以windows为例进行下载。


下载后点击bin目录中的启动文件即可,默认的端口是8081,访问路径是/,也可以去配置文件中修改,这里以默认。


启动后,打开localhost:8081,nexus默认的用户名是admin/admin123


默认安装有以下这几个仓库,在控制台也可以修改远程仓库的地址,第三方仓库等。



Maven配置


修改maven主目录conf/setting.xml配置文件。


添加nexus认证的用户名和密码配置信息。


<servers>

    <server>

          <id>nexus-releases</id>

          <privateKey>admin</privateKey>

          <passphrase>admin123</passphrase>

    </server>

    <server>

          <id>nexus-snapshots</id>

          <privateKey>admin</privateKey>

          <passphrase>admin123</passphrase>

    </server>

</servers>


添加mirror镜像


 <mirrors>

    <mirror>

          <id>Nexus</id>

          <mirrorOf>*</mirrorOf>

          <name>Nexus</name>

          <url>http://127.0.0.1:8081/repository/maven-public/</url>

     </mirror>

  </mirrors>


添加私库


<profiles>

<profile>

<id>Nexus</id>

<repositories>

<repository>

<id>Nexus</id>

<name>Nexus</name>

<url>http://127.0.0.1:8081/repository/maven-public/</url>

<releases>

<enabled>true</enabled>

</releases>

<snapshots>

<enabled>true</enabled>

</snapshots>

</repository>

</repositories>

<pluginRepositories>

<pluginRepository>

<id>Nexus</id>

<name>Nexus</name>

<url>http://127.0.0.1:8081/repository/maven-public/</url>

<releases>

<enabled>true</enabled>

</releases>

<snapshots>

<enabled>true</enabled>

</snapshots>

</pluginRepository>

</pluginRepositories>

</profile>

</profiles>

  

激活私库


<activeProfiles>

     <activeProfile>Nexus</activeProfile>

</activeProfiles>


发布到私库



在pom配置文件中添加


<!-- nexus-releases nexus-snapshots与settings.xml中server下的id对应 -->

<distributionManagement>

<repository>

<id>nexus-releases</id>

<name>Nexus Releases Repository</name>

<url>http://localhost:8081/nexus/content/repositories/releases/</url>

</repository>

<snapshotRepository>

<id>nexus-snapshots</id>

<name>Nexus Snapshots Repository</name>

<url>http://localhost:8081/nexus/content/repositories/snapshots/</url>

</snapshotRepository>

</distributionManagement>


在项目上使用命令mvn deploy打包就能发布到私库。



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存