使用nexus3.19搭建自己的maven私服

使用nexus3.19搭建自己的maven私服

  怎么安装参见CentOS6.9安装Nexus3.19 ,接下来就是如何配置。打开我们安装后的nexus界面,用admin账号登陆,点击Server administration and configuration按钮:

  点击Repository

  我们可以看到nexus默认给我建好了一些仓库,其中包括3类:代理proxy,仓库组group和宿主host。

  代理用来指向远程仓库的,如中央仓库,但毕竟国内的阿里云仓库比国外要快许多,所以我们自己建一个新的代理仓库。点击Create Repository:

   

  选择maven2(proxy):

  输入仓库名和阿里云的远程仓库地址(http://maven.aliyun.com/nexus/content/groups/public):

  拉到最下面点击Create Repository,返回上一层界面:  

  接着我们创建宿主仓库,宿主仓库跟我们的项目相关,用于上传我们打出来的包,分发布Release和快照Snapshot两种,所以我们就建两个宿主仓库,过程同上:

 

   最后我们再创建一个仓库组,仓库组就像数据库的视图一样,能把多个仓库聚合起来用,记得把aliyun放在maven-central上面,这样才能优先找阿里云的构件:

 

  ok,现在我要的仓库都弄好了,接着配置maven的全局设置setting.xml文件。在这之前,还得新建一个用户给开发用。nexus3.19的默认用户有两种:admin(能配置仓库、查询和上传构件)和anonymous(只能查构件):

  我们新增一个角色deployment用于构建查询和上传,剥离admin的仓库管理能力,免得开发人员瞎搞。先新增角色:

 

 

  再回去用户那里新增一个deployment用户:

  

  最后,我们在setting中添加我们新加的宿主仓库的认证(我设置deployment用户的密码就是deployment123),配置镜像,让所有maven构建都走到镜像,经由镜像去请求仓库组,最后请求到我们配置的宿主仓库和代理仓库,大概脉络如下:

                                   +---------------aliyun(proxy) :下载开源jar包

maven -> nexus(group) ->  |---------------nexus-releases(host) :项目上传release的jar包,下载本地上传的jar包

                                           +---------------nexus-snapshots(host):项目上传snapshot的jar包,下载本地上传的jar包

   新建一个setting文件setting_nexus.xml文件:

复制代码

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <localRepository>E:/Users/wulf/.m2/repository</localRepository>

    <mirrors>
        <mirror>
            <id>nexus</id>
            <name>nexus repository</name>
            <url>http://111.11.11.11/repository/nexus-group</url>
            <mirrorOf>*</mirrorOf>
        </mirror>
    </mirrors>

    <!-- 激活配置 -->
    <activeProfiles>       
        <activeProfile>nexus</activeProfile>
    </activeProfiles>    
    <profiles>
        <profile>
            <id>nexus</id>
            <repositories>
                <repository>
                    <id>central</id>      
                    <url>http://111.11.11.11:17407/repository/aliyun</url>                    
                    <releases><enabled>true</enabled></releases>
                    <snapshots><enabled>true</enabled></snapshots>                    
                </repository>               
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>central</id>      
                    <url>http://111.11.11.11:17407/repository/aliyun</url>                    
                    <releases><enabled>true</enabled></releases>
                    <snapshots><enabled>true</enabled></snapshots>    
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>


    <servers>
        <server>
            <id>nexus-releases</id>
            <username>deployment</username>
            <password>deployment123</password>
        </server>
        <server>
            <id>nexus-snapshots</id>
            <username>deployment</username>
            <password>deployment123</password>
        </server> 
    </servers>

</settings>

复制代码

   新建一个maven项目(spring boot项目),指定我们新增setting文件:

   只需要往按默认生成的pom文件中加入上传jar包的宿主仓库即可:

复制代码

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.wlf</groupId>
    <artifactId>spring-cloud-plugin</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>spring-cloud-plugin</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <distributionManagement>
        <repository>
            <id>nexus-releases</id>
            <url>http://111.11.11.11:17407/repository/nexus-releases/</url>
        </repository>
        <snapshotRepository>
            <id>nexus-snapshots</id>
            <url>http://111.11.11.11:17407/repository/nexus-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

复制代码

  跑一个deploy,看下maven执行日志:

复制代码

Downloading: http://111.11.11.11:17407/repository/nexus-snapshots/com/wlf/spring-cloud-plugin/0.0.1-SNAPSHOT/maven-metadata.xml
Uploading: http://111.11.11.11:17407/repository/nexus-snapshots/com/wlf/spring-cloud-plugin/0.0.1-SNAPSHOT/spring-cloud-plugin-0.0.1-20201017.010507-1.jar
Uploaded: http://111.11.11.11:17407/repository/nexus-snapshots/com/wlf/spring-cloud-plugin/0.0.1-SNAPSHOT/spring-cloud-plugin-0.0.1-20201017.010507-1.jar (8033 KB at 1523.3 KB/sec)
Uploading: http://111.11.11.11:17407/repository/nexus-snapshots/com/wlf/spring-cloud-plugin/0.0.1-SNAPSHOT/spring-cloud-plugin-0.0.1-20201017.010507-1.pom
Uploaded: http://111.11.11.11:17407/repository/nexus-snapshots/com/wlf/spring-cloud-plugin/0.0.1-SNAPSHOT/spring-cloud-plugin-0.0.1-20201017.010507-1.pom (3 KB at 4.9 KB/sec)
Downloading: http://111.11.11.11:17407/repository/nexus-snapshots/com/wlf/spring-cloud-plugin/maven-metadata.xml
Uploading: http://111.11.11.11:17407/repository/nexus-snapshots/com/wlf/spring-cloud-plugin/0.0.1-SNAPSHOT/maven-metadata.xml
Uploaded: http://111.11.11.11:17407/repository/nexus-snapshots/com/wlf/spring-cloud-plugin/0.0.1-SNAPSHOT/maven-metadata.xml (776 B at 2.9 KB/sec)
Uploading: http://111.11.11.11:17407/repository/nexus-snapshots/com/wlf/spring-cloud-plugin/maven-metadata.xml
Uploaded: http://111.11.11.11:17407/repository/nexus-snapshots/com/wlf/spring-cloud-plugin/maven-metadata.xml (286 B at 1.4 KB/sec)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 27.136 s
[INFO] Finished at: 2020-10-17T09:05:13+08:00
[INFO] Final Memory: 25M/210M
[INFO] ------------------------------------------------------------------------

复制代码

  去看一眼nexus的界面,nexus-snapshots的包成功打上去了:

猜你喜欢

转载自blog.csdn.net/kongliand/article/details/113732699