Android Studio库工程上传maven

在公司项目做多了,总能抽取出一些常用的框架,工具类等做成库工程,供以后的项目添加依赖来使用。如何把库工程上传到公司的公共服务器供大家使用呢?

</pre><p>服务器需要安装Nexus,搭建一个maven仓库</p><p>Studio库工程的 build.gradle(project的)指定maven地址,如我的</p><p></p><pre name="code" class="html">buildscript {
    repositories {
        jcenter()
        maven {
            url 'http://192.168.8.244:8888/repository/private/'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.3'
    }
}

allprojects {
    repositories {
        jcenter()
        maven {
            url 'http://192.168.8.244:8888/repository/private/'
        }
    }
}
build.gradle(Module的)添加上传的task

apply plugin: 'maven'

def isReleaseBuild() {
    return VERSION_NAME.contains("SNAPSHOT") == false
}

def getRepositoryUsername() {
    return hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : ""
}

def getRepositoryPassword() {
    return hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : ""
}

afterEvaluate {
    project ->
        uploadArchives {
            repositories {
                mavenDeployer {
                    pom.groupId = GROUP
                    pom.artifactId = POM_ARTIFACT_ID
                    pom.version = VERSION_NAME
                    repository(url: RELEASE_REPOSITORY_URL) {
                        authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
                    }
                    snapshotRepository(url: SNAPSHOT_REPOSITORY_URL) {
                        authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
                    }
                }
            }
        }
        task androidJavadocs(type: Javadoc) {
            classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
            source = android.sourceSets.main.java.srcDirs
            options {
                encoding 'utf-8'
            }
            exclude '**/BuildConfig.java'
            exclude '**/R.java'
            failOnError false
        }
        task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
            classifier = 'javadoc'
            from androidJavadocs.destinationDir
        }
        task androidSourcesJar(type: Jar) {
            classifier = 'sources'
            from android.sourceSets.main.java.sourceFiles
        }
        artifacts {
            archives androidSourcesJar
            archives androidJavadocsJar
        }
}
工程的根目录下创建文件 gradle.properties

GROUP=com.example.library (一般是项目的包名)
VERSION_NAME=1.2.3 (版本号)
POM_ARTIFACT_ID=MyLibrary (库名字)

SNAPSHOT_REPOSITORY_URL=http://192.168.8.244:8888/repository/private/
RELEASE_REPOSITORY_URL=http://192.168.8.244:8888/repository/private/

NEXUS_USERNAME=xxx (nexus 的登录账号)
NEXUS_PASSWORD=xxx  <span style="font-family: Arial, Helvetica, sans-serif;">(nexus的密码)</span>


点击Studio软件里 RUN 的那个绿色的小三角箭头或者在Gradle里找到 Tasks下的upload的uploadArchives任务双击,即可完成上传到maven


项目中如何引用上面上传的库工程呢?
build.gradle(project的)指定maven地址,如前文所示

build.gradle(Module的)的dependencies里添加

compile 'com.example.library:MyLibrary:1.2.3'   //对应gradle.properties的 GROUP:POM_ARTIFACT_ID:VERSION_NAME



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值