使用Nexus搭建本地Maven仓库

1.安装Nexus

a.zip包下载链接:https://www.sonatype.com/download-oss-sonatype

下载这个包我是费了九牛二虎之力的,130多M的手机流量,坑!!!
提供给大家一个最新包的百度网盘链接吧:链接:https://pan.baidu.com/s/1geDoUYn 密码:2gtn

1778289-73d846f979722643.png

image.png


由于本人习惯于windows系统,读者可以视自己的情况而定。

 

b.解压到某一个目录(自定义)

1778289-639afdc432dfce48.png

image.png

 

里面会存在俩个目录结构,看文件名好像tomcat的结构,不多说,后面上传了自己的model后看变化

c.配置下默认参数吧

1778289-5659b1d8a3ee64f3.png

image.png

 

1778289-08b0fad9159d46fd.png

image.png

 

默认是8081端口,顺带瞄了一眼,采用的Jetty服务,哈哈

d.环境变量就配置解压后的根目录吧,其实不配置也行

1778289-f88d6b0fa504cdf0.png

image.png

e.以管理员权限安装运行nexus吧

1778289-5a4e41d314991d02.png

image.png

 

我在这里掉坑里面了,大家需要注意了,虽然你Starting service 'nexus'. 但是这个服务不一定马上起来,要等下1分钟左右吧,害的我在这里一直重装启动,重装启动......

2.提供俩个配置文件,往自己的model project根目录下面一丢完事

a.gradle.properties

# 包的坐标信息
GROUP_ID=com.xxx.mylibrary
ARTIFACT_ID=mylibrary
VERSION=1.1.2
PACKAGE_TYPE=aar
DESCRIPTION=this is mylibrary

RELEASE_URL=http://127.0.0.1:8081/repository/maven-releases/
SNAPSHOT_URL=http://127.0.0.1:8081/repository/maven-snapshots/

# NEXUS用户名和密码
NEXUS_USER=xxx
NEXUS_PWD=xxx

b.maven_push.gradle

apply plugin: 'maven'
apply plugin: 'signing'

configurations {
    deployerJars
}

repositories {
    mavenCentral()
}

// 判断版本是Release or Snapshots
def isReleaseBuild() {
    return !VERSION.contains("SNAPSHOT")
}

// 获取仓库url
def getRepositoryUrl() {
    return isReleaseBuild() ? RELEASE_URL : SNAPSHOT_URL
}

uploadArchives {
    repositories {
        mavenDeployer {
            //为Pom文件做数字签名
            beforeDeployment {
                MavenDeployment deployment -> signing.signPom(deployment)
            }

            pom.project {
                version = VERSION
                artifactId = ARTIFACT_ID
                groupId = GROUP_ID
                packaging = PACKAGE_TYPE
                description = DESCRIPTION
            }

            repository(url: getRepositoryUrl()) {
                authentication(userName: NEXUS_USER, password: NEXUS_PWD) // maven授权信息
            }
        }
    }
}

// 进行数字签名
signing {
    // 当 发布版本 & 存在"uploadArchives"任务时,才执行
    required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") }
    sign configurations.archives
}

// type显示指定任务类型或任务, 这里指定要执行Javadoc这个task,这个task在gradle中已经定义
task androidJavadocs(type: Javadoc) {
    // 设置源码所在的位置
    source = android.sourceSets.main.java.sourceFiles
}

// 生成javadoc.jar
task androidJavadocsJar(type: Jar) {
    // 指定文档名称
    classifier = 'javadoc'
    from androidJavadocs.destinationDir
}

// 生成sources.jar
task androidSourcesJar(type: Jar) {
    classifier = 'sources'
    from android.sourceSets.main.java.sourceFiles
}

// 产生相关配置文件的任务
artifacts {
    archives androidSourcesJar
    archives androidJavadocsJar
}

c.当然在你model project的build.gradle 文件里面还是得依赖下的,不然怎么生效呢

一句话的事,就直接上码:

apply plugin: 'com.android.library'
apply from: 'maven_push.gradle'

d.可以去上传了

1778289-76104781e7faa704.png

image.png

3.怎么用呢?

在主工程的root build.gradle中配置下maven仓库的地址:

buildscript {
    repositories {
        jcenter()
        mavenCentral()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        google()
//重点下面俩行拉
        maven { url "http://127.0.0.1:8081/repository/maven-releases/" } 
        maven { url "http://127.0.0.1:8081/repository/maven-snapshots/" }
    }
}

在工程build.gradle里面:
compile 'com.xxx.xx:artifaceid:1.1.0'
其实组成结构就是:compile 'groupid:artifaceid:version'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值