安装nexus

  • 安装docker
    ``·bash
    yum install docker-ce
  • 拉取镜
    docker pull registry.docker-cn.com/sonatype/nexus3:3.13.0
  • 创建数据持久化目录
    mkdir -p /opt/share/files/nexus-data/
    chow 200  /opt/share/files/nexus-data/
  • 启动容器
    docker run -d -p 80:8081 --name nexus -v /opt/share/files/nexus-data:/nexus-data sonatype/nexus3:3.13.0

    创建仓库

  • 在浏览器打开htttp://your_ip,可以打开nexus
  • 点击右上角的Sign in,登录nexus,默认用户名密码为admin/admin123
  • 选择Repository - repositories,点击create repository
    通过Nexus搭建maven私有仓库,并通过gradle上传jar_第1张图片
  • 选择maven2(hosted),hosted是本地仓库,上传到maven2(hosted)的jar将保存在私有仓库中,maven2(proxy)是代理仓库,如果配置gradle使用maven2(proxy),在拉取jar时,maven2(proxy)有相应的jar则直接返回给gradle,如果没有相应的jar,测nexus从远程仓库中拉取jar并缓存在本地,并将jar返回到gradle,这里选择maven2(hosted)
    通过Nexus搭建maven私有仓库,并通过gradle上传jar_第2张图片
  • 填写仓库配置,release的deployment policy设置为Disable redeploy,将不允许对已经上传的jar进行覆盖
    通过Nexus搭建maven私有仓库,并通过gradle上传jar_第3张图片
  • 创建好的仓库
    通过Nexus搭建maven私有仓库,并通过gradle上传jar_第4张图片

    在idea中配置gradle上传jar

  • 编辑build.gradle

    plugins {
    id 'java'
    id 'org.jetbrains.kotlin.jvm' version '1.2.71'
    id 'maven-publish' //添加这个plugin
    }
    group 'org.test'
    //version '1.0-SNAPSHOT'
    version '1.0'
    sourceCompatibility = 1.8
    repositories {
    mavenCentral()
    }
    dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    testCompile group: 'junit', name: 'junit', version: '4.12'
    compile 'org.jodd:jodd-core:5.0.4'
    }
    compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
    }
    compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
    }
    //打包源码
    task sourceJar(type: Jar) {
    from sourceSets.main.allSource
    }
    publishing {
    publications {
        maven(MavenPublication) {
            //指定group/artifact/version信息,可以不填。默认使用项目group/name/version作为groupId/artifactId/version
            groupId project.group
            artifactId project.name
            version project.version
            //如果是war包填写components.web,如果是jar包填写components.java
            from components.java
    
            //配置上传源码
            artifact sourceJar {
                classifier "sources"
            }
    
        }
    }
    repositories {
        maven {
            //指定要上传的maven私服仓库
            url = "http://localhost/repository/test/"
            //认证用户和密码
            credentials {
                username 'admin'
                password 'admin123'
            }
        }
    }
    }
  • 上传jar
    点击gradle面板上的publishing->publish上传jar

    在gradle使用私有仓库

  • 编辑build.gradle
    repositories {
    //    mavenCentral()
    maven{//禁用默认的maven库,从nexus默认的proxy仓库拉取jar
        url "http://localhost/repository/maven-central/" 
    //        credentials {//如果没有开启匿名访问需要添加认证
    //            username "admin"
    //            password "admin123"
    //        }
    }
            maven{//引用test仓库
        url "http://localhost/repository/test/"
    //        credentials {
    //            username "admin"
    //            password "admin123"
    //        }
    }
    }

    参考链接:

    https://blog.csdn.net/KingBoyWorld/article/details/79135219
    https://www.jianshu.com/p/9740778b154f