天天看点

nexus私服搭建与使用

一.搭建

下载压缩包,解压到指定的目录

nexus私服搭建与使用

在浏览器上输入http://ip:8081/(nexus默认的端口号是8081),进入nexus,sign in登录,默认的用户名是admin,密码在admin.password中

二.几种仓库

hosted:本地仓库,通常我们会部署自己的构件到这一类型的仓库。比如公司的第三方库。

proxy:代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。

group:仓库组,用来合并多个hosted/proxy仓库。

初始化nexus的时候默认会创建这三个仓库,并且将hosted和proxy仓库归到group中:

nexus私服搭建与使用
nexus私服搭建与使用

三.配置setting.xml

<server>
            <id>public</id>
            <username>admin</username>
            <password>123456</password>
        </server>
        <server>
            <id>releases</id>
            <username>admin</username>
            <password>123456</password>
        </server>
        <server>
            <id>snapshots</id>
            <username>admin</username>
            <password>123456</password>
        </server>

        <mirror>
            <id>public</id>
            <name>maven-public</name>
            <url>http://localhost:8081/repository/maven-public/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
        <profile>
            <id>public</id>
            <repositories>
                <repository>
                    <id>public</id>
                    <name>maven-public</name>
                    <url>http://localhost:8081/repository/maven-public/</url>
                    <layout>default</layout>
                    <!--<snapshots>-->
                    <!--<enabled>false</enabled>-->
                    <!--</snapshots>-->
                    <snapshots>
                        <enabled>true</enabled>
                        <checksumPolicy>ignore</checksumPolicy>
                        <updatePolicy>daily</updatePolicy>
                    </snapshots>

                    <releases>
                        <enabled>true</enabled>
                    </releases>
                </repository>
            </repositories>

            <pluginRepositories>
                <pluginRepository>
                    <id>public</id>
                    <name>maven-public</name>
                    <url>http://localhost:8081/repository/maven-public/</url>
                    <layout>default</layout>
                    <releases>
                        <enabled>true</enabled>
                        <updatePolicy>never</updatePolicy>
                        <checksumPolicy>ignore</checksumPolicy>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    	<activeProfiles>
        	<activeProfile>public</activeProfile>
    	</activeProfiles>
           

四.配置pom.xml

<distributionManagement>
        <repository>
            <id>releases</id><!--这个ID需要与你的release仓库的Repository ID一致-->
            <name>maven-releases</name>
            <url>http://localhost:8081/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>snapshots</id>
            <name>maven-snapshots</name>
            <url>http://localhost:8081/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>
           

四.上传jar到nexus

nexus私服搭建与使用

可以传pom也可以传jar

nexus私服搭建与使用

批量上传脚本:

#!/bin/bash
 
# copy and run this script to the root of the repository directory containing files
# this script attempts to exclude uploading itself explicitly so the script name is important
# Get command line params
while getopts ":r:u:p:" opt; do
	case $opt in
		r) REPO_URL="$OPTARG"
		;;
		u) USERNAME="$OPTARG"
		;;
		p) PASSWORD="$OPTARG"
		;;
	esac
done
 
find . -type f -not -path './mavenimport\.sh*' -not -path '*/\.*' -not -path '*/\^archetype\-catalog\.xml*' -not -path '*/\^maven\-metadata\-local*\.xml' -not -path '*/\^maven\-metadata\-deployment*\.xml' | sed "s|^\./||" | xargs -I '{}' curl -u "$USERNAME:$PASSWORD" -X PUT -v -T {} ${REPO_URL}/{} ;

           

./mavenimport.sh -u admin -p admin123 -r http://localhost:8081/repository/maven-public/

将本地项目打包上传到nexus:

<distributionManagement>
        <repository>
            <id>releases</id><!--这个ID需要与你的release仓库的Repository ID一致-->
            <name>maven-releases</name>
            <url>http://localhost:8081/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>snapshots</id>
            <name>maven-snapshots</name>
            <url>http://localhost:8081/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>
           

mvn deploy -Dmaven.test.skip=true -e

继续阅读