发布androidlib项目到maven仓库

随着公司新游戏、新项目的增加,为了提高开发效率,方便项目的统一维护,于是我们将一些积累的公共代码以及第三方的开源库放在一个library项目中,然后上传到公司自己基于Nexus搭建的Maven仓库,以便在其他项目中通过Gradle配置来添加引用,既方便又快捷。
一.编写gradle脚本配置
1.首先在lib下新建gradle.properties文件,在里面配置版本号,仓库地址,仓库包名和名称以及maven仓库的用户名和密码。在这里插入图片描述

VERSION=1.1.0
GROUP_ID=com.sdk.manage
ARTIFACT_ID=swanalytics

RELEASE_URL=
SNAPSHOT_URL=

NAME=
PASSWORD=

2.新建maven_push.gradle文件

apply plugin: 'maven'
apply plugin: 'signing'
apply plugin: 'maven-publish'


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 {

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

            beforeDeployment {
                MavenDeployment deployment -> signing.signPom(deployment)
            }

            pom.version = VERSION
            pom.artifactId = ARTIFACT_ID
            pom.groupId = GROUP_ID
        }
    }
}

// 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
}

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

3.在build.gradle里面进行依赖apply from: 'maven_push.gradle’点击上传,然后就可以在仓库中看到aar包啦在这里插入图片描述
4.别的项目依赖仓库,在project.gradle里面进行配置

allprojets {
    repositories {
        jcenter()
        maven{
            url '刚才上传的仓库地址'
        }
    }
}

在主module的build.gradle里面进行依赖

compile 'com.sdk.manage:swanalytics:1.0.0'

5.碰到的坑,当代码混淆上传的时候要关掉androidSourcesJar和androidJavadocsJar上传,不然别的项目依赖下载的aar包有问题。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值