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:\test-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%\conf\settings.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/

 

posted @ 2017-05-16 00:12  EasonJim  阅读(968)  评论(0编辑  收藏  举报