Maven私服Nexus 3.x搭建

一. 搭建环境

  1. 操作系统:Windows 10
  2. nexus版本:nexus-3.10.0-04-win64

二. 安装

  1. 下载地址:https://www.sonatype.com/nexus-repository-oss
    20180331152734842.png
QQ图片20180430133541.png
  1. 解压之后文件目录结构为:
    QQ图片20180430134325.png

    3.添加环境变量
    D:\software\nexus-3.10.0-04-win64\nexus-3.10.0-04\bin

三. 启动测试

打开cmd执行命令 nexus.exe /run启动服务
查看网站:localhost:8081(admin/admin123)

四. 配置文件说明

1.编辑$install-dir/bin/nexus.vmoptions :

-XX:+UnlockDiagnosticVMOptions
-XX:+UnsyncloadClass
-XX:+LogVMOutput
-XX:LogFile=../sonatype-work/nexus3/log/jvm.log
-XX:-OmitStackTraceInFastThrow
-Djava.net.preferIPv4Stack=true
-Dkaraf.home=.
-Dkaraf.base=.
-Dkaraf.etc=etc/karaf
-Djava.util.logging.config.file=etc/karaf/java.util.logging.properties
-Dkaraf.data=../sonatype-work/nexus3
-Djava.io.tmpdir=../sonatype-work/nexus3/tmp
-Dkaraf.startLocalConsole=false

  1. 配置文件主要在$install-dir/etc下:
QQ图片20180430150413.png

五. 基本使用教程

基本说明:

  1. component name的一些说明:
    1)maven-central:maven中央库,默认从https://repo1.maven.org/maven2/拉取jar
    2)maven-releases:私库发行版jar
    3)maven-snapshots:私库快照(调试版本)jar
    4)maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml中使用。

2.Nexus默认的仓库类型有以下四种:
1)group(仓库组类型):又叫组仓库,用于方便开发人员自己设定的仓库;
2)hosted(宿主类型):内部项目的发布仓库(内部开发人员,发布上去存放的仓库);
3)proxy(代理类型):从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签下Remote Storage Location属性的值即被代理的远程仓库的路径);
4)virtual(虚拟类型):虚拟仓库(这个基本用不到,重点关注上面三个仓库的使用);

3.Policy(策略):表示该仓库为发布(Release)版本仓库还是快照(Snapshot)版本仓库;

4.Public Repositories下的仓库
1)3rd party: 无法从公共仓库获得的第三方发布版本的构件仓库,即第三方依赖的仓库,这个数据通常是由内部人员自行下载之后发布上去;
2)Apache Snapshots: 用了代理ApacheMaven仓库快照版本的构件仓库
3)Central: 用来代理maven中央仓库中发布版本构件的仓库
4)Central M1 shadow: 用于提供中央仓库中M1格式的发布版本的构件镜像仓库
5)Codehaus Snapshots: 用来代理CodehausMaven 仓库的快照版本构件的仓库
6)Releases: 内部的模块中release模块的发布仓库,用来部署管理内部的发布版本构件的宿主类型仓库;release是发布版本;
7)Snapshots:发布内部的SNAPSHOT模块的仓库,用来部署管理内部的快照版本构件的宿主类型仓库;snapshots是快照版本,也就是不稳定版本
所以自定义构建的仓库组代理仓库的顺序为:Releases,Snapshots,3rd party,Central。也可以使用oschina放到Central前面,下载包会更快。

5.1 仓库操作

20180401210458558.png

20180401213114273.png
20180401213632900.png
20180401211526525.png
20180401221147952.png
20180401222849608.png

5.2 gradle上传依赖库

//maven_push.gradle
apply plugin: "maven"
def RELEASE_REPOSITORY_URL = "http://localhost:8081/repository/android_rep_release/"
def SHAPSHOT_REPOSITORY_URL = "http://localhost:8081/repository/android_rep_snapshot/"
def REPOSITORY_RUL = VERSION_NAME.endsWith("-SNAPSHOT") ? SHAPSHOT_REPOSITORY_URL : RELEASE_REPOSITORY_URL;
def NEXUS_USERNAME = "admin"
def NEXUS_PASSWORD = "admin123"
afterEvaluate { project ->
    uploadArchives {
        repositories.mavenDeployer {
            pom.groupId = GROUP
            pom.artifactId = POM_ARTIFACT_ID
            pom.version = VERSION_NAME
            repository(url: REPOSITORY_RUL) {
                authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
            }
        }
    }
    task androidSourcesJar(type: Jar) {
        classifier = 'sources'
        from android.sourceSets.main.java.sourceFiles
    }
    artifacts {
        archives androidSourcesJar
    }
}

//在其他文件中引用
//ext.GROUP="com.guider"
//ext.VERSION_NAME="v1.1.0"
//ext.POM_ARTIFACT_ID="commonlib"
//apply from:"${project.rootDir}/gradle_maven_push.gradle"

5.3 依赖库的使用

maven {
            url "http://localhost:8081/repository/maven-public/"
 }
//添加依赖
 implementation 'com.guider:commonlib:v1.1.0'

你可能感兴趣的:(Maven私服Nexus 3.x搭建)