zoukankan      html  css  js  c++  java
  • Windows下使用Nexus搭建Maven私服(使用)

    注意:

    1、从3.0版本的Nexus开始,已经不再缓存https://repo1.maven.org/maven2/的包,所以当安装好之后,在界面上不会有任何的包可以搜索到,但是功能是一切正常的,只有当Maven构建时,Nexus才会缓存这些包下来。同时也不会有以前2.0版本的缓存选项等。我参测这样设计的原理和本地仓库的效果一致。参考:http://stackoverflow.com/questions/34782859/sonatype-nexus-3-remote-connection-pending

    2、3.0版本默认没有手动上传包的功能,而如果要安装包只能通过命令行

    mvn deploy:deploy-file -DgroupId=com.mysql -DartifactId=test -Dversion=1.5.0_16 -Dpackaging=jar -Dfile=d:	est-nexus-1.1.0.jar -Durl=http://127.0.0.1:8081/repository/maven-public/ -DrepositoryId=maven-public

    3、总体感觉3.0的没有2.0版本的好用,尤其是坐标的xml配置信息,3.0已经没有了,建议升级的用户要三思。

    介绍:

    • proxy是代理仓库,如果自己私有库没有对应的资源(jar等),会到这里去找。而这里可以填写中央仓库的地址,比如:https://repo1.maven.org/maven2/,当然还有其它的,再比如阿里的镜像库等。
    • hosted是宿主仓库,是自己的私有库地址,这个就是自己的。这个有releasessnapshots两种类型,你如果自己创建的时候,需要指定,一个是正式发布(Release)地址,一个是镜像(Snapshot)地址。
    • group管理组,组是Nexus一个强大的特性,它允许你在一个单独的URL中组合多个仓库。比如这里默认组合了:maven-central、maven-releases和maven-snapshots ,一般直接引用这个地址就好了。

    测试:

    下面将演示一个项目从私有仓库获取jar包到提交jar包私有仓库的流程

    ①从私有仓库获取依赖包

    配置bus-core-api的pom.xml:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.jsoft.test</groupId>
      <artifactId>bus-core-api</artifactId>
      <packaging>jar</packaging>
      <version>1.1-SNAPSHOT</version>
      <name>bus-core-api</name>
      <url>http://maven.apache.org</url>
      <repositories>
        <repository>
            <id>id-maven-public</id>
            <name>maven-public</name>
            <url>http://127.0.0.1:8081/repository/maven-public/</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
            <id>id-maven-public</id>
            <name>maven-public</name>
            <url>http://127.0.0.1:8081/repository/maven-public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
      </pluginRepositories>
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </project>

    然后运行命令即可观察到依赖包从自己的私有地址开始下载

    mvn compile

    ②提交jar包的私有仓库

    先配置Maven的settings文件,增加私有仓库的账号密码,此文件在%M2_HOME%confsettings.xml

    <servers>
        ...
        <server>
            <id>oss</id>
            <username>admin</username>
            <password>admin123</password>
        </server>
        ...
    </servers>

    然后在此配置项目的POM文件

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.jsoft.test</groupId>
      <artifactId>bus-core-api</artifactId>
      <packaging>jar</packaging>
      <version>1.1-SNAPSHOT</version>
      <name>bus-core-api</name>
      <url>http://maven.apache.org</url>
      <repositories>
        <repository>
            <id>id-maven-public</id>
            <name>maven-public</name>
            <url>http://127.0.0.1:8081/repository/maven-public/</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
            <id>id-maven-public</id>
            <name>maven-public</name>
            <url>http://127.0.0.1:8081/repository/maven-public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
      </pluginRepositories>
      <distributionManagement>
        <repository>
            <id>oss</id>
            <url>http://127.0.01:8081/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>oss</id>
            <url>http://127.0.0.1:8081/repository/maven-snapshots/</url>
        </snapshotRepository>
      </distributionManagement>
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </project>

    提示:oss这个id在pom.xml和settings.xml是一一对应的。

    然后运行部署命令进行部署

    mvn deploy

    此时,会发现Nexus已经有了自己提交的jar包

     以上参考:https://linjie.org/2016/04/23/Sonatype-nexus-3-build-run/

  • 相关阅读:
    分布式架构总汇【转】
    spring注解
    lombok安装和使用
    dubbo配置
    关于dubbo的负载均衡
    maven工作的过程
    android基础---->子线程更新UI
    JavaScript中有时候需要获取当前的时间戳
    Ubuntu 安装mysql
    nodejs 语法很特别的地方
  • 原文地址:https://www.cnblogs.com/EasonJim/p/6859106.html
Copyright © 2011-2022 走看看