maven配置nexus私服并发布更新jar包

一般maven是不用配置私服的,默认是直接在maven中心仓库下载依赖的,但是如果想自己发布jar包又不能公开发布到公网,就可以自己搭建maven私服方便多个项目之间自定义依赖可以共享,而且maven配置私服可以直接设置国内比较快的阿里云站点

一、搭建nexus私服

二、nexus配置maven仓库

一张图就可以配置好nexus中的maven仓库设置,有个代理链接是指向阿里云的,这样拉取依赖可以快一点,第一个红色框是我们在maven setting文件中要配置的地址,也就是maven私服仓库远程地址

nexus maven私服设置

三、maven setting中配置nexus仓库

找到自己安装的maven目录,打开setting文件,添加以下配置

此文件是个xml文件,找到servers标签添加以下配置

    <server>
      <id>my-nexus-snapshots</id>
      <username>你的nexus登录账号</username>
      <password>你的nexus登录密码</password>
    </server>
    <server>
      <id>my-nexus-release</id>
      <username>你的nexus登录账号</username>
      <password>你的nexus登录密码</password>
    </server>

mirrors中配置我们nexus的私服地址

    <mirror>
      <!--This sends everything else to /public -->
      <id>my-nexus</id>
      <mirrorOf>*</mirrorOf>
      <name>my maven</name> 
      <url>http://你的nexusIP和端口/repository/maven-public/</url>
    </mirror>

profiles中配置私服仓库,此配置我们本地可以deploy jar包到私服库

    <profile>
      <id>my-nexus</id>
      <!--Enable snapshots for the built in central repo to direct -->
      <!--all requests to nexus via the mirror -->
      <repositories> 
        <repository> 
            <id>my-nexus</id> 
            <name>local private nexus</name> 
            <url>http://你的nexusIP和端口/repository/maven-public/</url> 
            <releases><enabled>true</enabled><updatePolicy>always</updatePolicy>
            <checksumPolicy>warn</checksumPolicy></releases> 
            <snapshots><enabled>false</enabled></snapshots> 
        </repository>        
      </repositories> 
      <pluginRepositories> 
        <pluginRepository> 
            <id>my-nexus</id> 
            <name>local private nexus</name> 
            <url>http://你的nexusIP和端口/repository/maven-public/</url> 
            <releases><enabled>true</enabled><updatePolicy>always</updatePolicy>
            <checksumPolicy>warn</checksumPolicy></releases> 
            <snapshots><enabled>false</enabled></snapshots> 
        </pluginRepository>        
       </pluginRepositories> 
    </profile>

最后一个配置,我们在activeProfiles激活profile配置

    <activeProfile>my-nexus</activeProfile>

四、使用mvn命令安装和发布jar包到私服

做完以上配置后,就可以使用mvn命令进行测试了,后面也会说下怎么在maven项目中进行配置和发布

向本地maven仓库打入jar包,使用钉钉jar包作为测试

在jar包所在目录执行以下命令,如果出现mvn命令没找到记得配置maven在操作系统中的环境变量

mvn install:install-file
-Dfile=taobao-sdk-java-auto-dingding.jar
-DgroupId=com.taobao
-DartifactId=dingding-sdk
-Dversion=1.0
-Dpackaging=jar

执行完成后在repository目录中就可以看到我们打好的依赖,现在这个依赖还是本地的,如果要上传到私服库,执行以下命令

mvn deploy:deploy-file 
 -DgroupId=com.taobao 
 -DartifactId=dingding-sdk 
 -Dversion=1.0 
 -Dpackaging=jar 
 -Dfile=taobao-sdk-java-auto-dingding.jar 
 -Durl=http://你的nexus私服ip和端口/repository/maven-releases/ 
 -DrepositoryId=my-nexus-release

成功执行以上命令后,在我们的nexus私服就可以看到发布上来的jar包了

查看路径在maven-releases中

nexus私服图片

五、maven项目pom.xml中配置私服库

私服库搭建好后最终是要用到项目中的,接下来说明maven项目中如何配置

如果只是更新下载依赖,只需要在project标签中配置

    <project>
        ......
        <repositories>
            <repository>
                <id>my-public</id>
                <name>my nexus</name>
                <url>http://你的私服IP和端口/repository/maven-public/</url>
                <layout>default</layout>
                <releases>
                    <enabled>true</enabled>
                </releases>
            </repository>
        </repositories>
    </project>

如果需要发布依赖,在project做以下配置,当然二者可以共从

   <project>
        ......
        <distributionManagement>
            <repository>
                <id>my-nexus-release</id>
                <name>Nexus Release Repository</name>
                <url>http://你的私服IP和端口/repository/maven-releases/</url>
            </repository>
            <snapshotRepository>
                <id>my-nexus-snapshots</id>
                <name>Nexus Snapshot Repository</name>
                <url>http://你的私服IP和端口/repository/maven-snapshots/</url>
            </snapshotRepository>
        </distributionManagement>
    </project>

总结

完成以上配置,就可以享受私服带来的丝滑享受了,对于内部项目众多来说搭建maven私服是很重要的操作,对于发布保密性高的共享性依赖就很方便,感谢阅读,下次见。

发表评论