gradle发布Android library到私有mvn仓库

前置条件:

  1. 有私有maven仓库,一般都是:nexus-oss
  2. 发布到公共maven仓库:gradle-mvn-push

配置步骤:

一、配置私有仓库的地址和用户名/密码
VERSION_NAME=1.0.1-SNAPSHOT
#VERSION_NAME=1.0.1
VERSION_CODE=101

POM_GROUP=com.github.captain-miao
POM_ARTIFACT_ID=common
POM_PACKAGING=aar


POM_NAME=Android Common library
POM_DESCRIPTION=Android Common library


POM_URL=http://127.0.0.1/android/android-common
POM_SCM_URL=http://127.0.0.1/android/android-common
POM_SCM_CONNECTION=scm:http://127.0.0.1/android/android-common.git
POM_SCM_DEV_CONNECTION=scm:http://127.0.0.1/android/android-common.git


POM_LICENCE_NAME=MIT
POM_LICENCE_URL=http://opensource.org/licenses/MIT
POM_LICENCE_DIST=repo
SNAPSHOTS_USERNAME=snap_deploy
SNAPSHOTS_PASSWORD=snap_password
RELEASES_USERNAME=deployment
RELEASES_PASSWORD=deployment_password


POM_DEVELOPER_ID=yanlu
POM_DEVELOPER_NAME=yanlu

RELEASE_REPOSITORY_URL=http://127.0.0.1:8081/nexus/content/repositories/releases
SNAPSHOT_REPOSITORY_URL=http://127.0.0.1:8081/nexus/content/repositories/snapshots
POM_ISSUE_SYSTEM=GitHub Issues
POM_ISSUE_URL=http://127.0.0.1/android/android-common/issues

gradle-mvn-push.gradle可以直接读取上面的配置

def getReleaseRepositoryUrl() {
    return hasProperty('RELEASE_REPOSITORY_URL') ? RELEASE_REPOSITORY_URL
            : ""
}
二、配置私有仓库的用户名/密码

build.gradle 中添加私用仓库

buildscript {
    repositories {
        mavenCentral()
        maven {
            url "http://127.0.0.1:8081/nexus/content/repositories/snapshots"
            credentials {
                //鉴权用户
                username 'dev'
                password 'dev_password'
            }
        }
    }
    ...
}

gradle发布Android library到私有mvn仓库》有5个想法

  1. hi, YanLu,关于mvn和本地library有几个问题:
    1. 以前做开发的时候经常是把依赖的包下载下来然后作为library放在项目里面,这和发布到mvn私有仓库有什么区别?
    2. 这样做,对运行速度和打包速度有没有提升?现在升级了AS后,开Instant Run的时候运行一次要6min,关掉要2min多,严重影响写代码乐趣。
    thanks

    1. 1. Instant Run只有第一次很慢吧?现在还有莫名bug,只建议调试UI使用~
      2. library 稍有代码变动就要整体使用源代码编译一遍,mvn库就不需要了。
      3. library 应该是每次都要重新生成R文件
      4. 最新Android Studio 2.x版本会解决,keep住R文件(2016 I/O视频中说的)
      5. 可以提升下编译:https://www.aswifter.com/2015/06/14/boost-android-studio/

      1. 1. 确实只有第一次慢,第一次要五分钟,之后每次都要两分钟。。
        2. 参照了5的一些设置,但是感觉提升不大。
        3. 看gradle的一些log,发现每次library耗费的时间特别多;所以现在想把library上传到sonatype nexus上,然后引入使用。但是按照您的两篇两篇文章,搞了一上午都不行。。可不可将Project下的某一个Module上传?还是非得为library单独建立一个工程然后当作主工程的library?
        thanks

发表评论

电子邮件地址不会被公开。 必填项已用*标注