其他分享
首页 > 其他分享> > Nexus3创建maven私服

Nexus3创建maven私服

作者:互联网

关注我 「Java之康庄大道」精彩文章第一时间推送给你

Java之康庄大道

bin目录下启动 | 停止

./nexus start | stop

用户名密码

admin 初始密码在仓库路径中sonatype-work的admin.password文件中,启动成功之后就可以访问localhost:{port},填入初始密码之后admin.password文件就失效了,系统会要求设置新密码

配置

如果你只用于一个项目,可以在pom中配置

<repositories>
    <repository>
        <id>maven-nexus</id>
        <name>maven-nexus</name>
        <url>http://ip:8081/repository/maven-public/</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
        <releases>
            <enabled>true</enabled>
        </releases>
    </repository>
</repositories>

如果多个项目中,可以直接在 settings.xml中配置

    <profiles>
        <!--单个仓库配置,可配置多个-->
        <profile>
            <id>nexus</id>
            <repositories>
                <repository>
                    <id>my-nexus</id>
                    <name>Nexus</name>
                    <url>http://ip:8081/repository/maven-public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                    </snapshots>
                </repository>
            </repositories>
        </profile>
    </profiles>
    <!--选择哪个仓库配置生效-->
    <activeProfiles>
        <activeProfile>nexus</activeProfile>
    </activeProfiles>

发布配置

首先配置账户密码在 settings.xml

  <servers> 
	  <server>  
      <id>releases</id>  
      <username>admin</username>  
      <password>admin123</password>  
	  </server>  
	  <server>  
      <id>snapshots</id>  
      <username>admin</username>  
      <password>admin123</password>  
	  </server>
  </servers>

在pom中配置

<distributionManagement>
        <snapshotRepository>
            <id>snapshots</id>
            <name>Nexus Snapshot</name>
            <url>http://ip:8081/repository/maven-snapshots</url>
        </snapshotRepository>
        <repository>
            <id>releases</id>
            <name>Nexus Release</name>
            <url>http://ip:8081/repository/maven-releases</url>
        </repository>
    </distributionManagement>

然后执行下面的命令跳过测试打包发布到私服

mvn clean deploy -Dmaven.test.skip=true

目录介绍

简单说一下这些仓库是干嘛的:

再说一下release 和 snapshot 的区别

release 表示的是稳定版,snapshot是一个开发中的快照版。

假如你的同伴依赖你的模块进行开发,如果你没有用snapshot,那么你每次修改完代码发布到私服中,你的同伴都需要把本地仓库的jar包先删掉再重新更新才会是最新的代码,或者你在发布到私服之前每次都要修改POM文件的版本号,显然这是不合理的。但是如果用了snapshot版的话,发布到私服中的jar包名字后面会自动带有时间戳。这个时候你的同伴就能自动更新最新的snapshot版本。

新增阿里云和第三方库

阿里云库远程位置http://maven.aliyun.com/nexus/content/groups/public 选择proxy
第三方库需要选择Allow redeploy允许部署和更新,选择 hosted

如上图所示,私服依赖按照前后顺序排好,按照此顺序进行引用依赖。

介绍三个类型库

镜像设置

镜像会对仓库的请求进行过滤,也就是说当我们下载依赖的时候,如果镜像中存在,就直接从镜像中下载。
国内阿里的镜像:

<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror>

id:是镜像的标识
mirrorOf:被镜像仓库的id,例如central标识替代中央仓库,google标识替代谷歌套件仓库

我理解的镜像其实就是对仓库的集合。可以一次性解决多个仓库的配置。

比如,镜像中不存在对应的依赖,那我们就要独立配置仓库了,还有就是我们要上传jar也要配置仓库。

首先本地仓库没有,然后要经过镜像,没有,找自己配置的仓库,如果没有再去找中央仓库。

如何把本地maven库上传nexus3私服

chmod +x mavenimport.sh
./mavenimport.sh -u admin -p password -r http://127.0.0.1:8081/repository/my-repo/

标签:http,仓库,私服,maven,nexus,Nexus3,镜像
来源: https://www.cnblogs.com/yunqing/p/16131841.html