AndroidStudio发布项目到Nexus搭建的Maven私服

767 阅读2分钟

以下流程基于maven私服搭建OK的环境下进行 关于Maven私服搭建步骤请自行Search

* 创建需要上传到maven的AndroidLibrary

> 不过多解释

* 配置发布命令

1. 在Library目录下创建push.gradle文件,配置如下

2. library工程的build.gradle中应用push.gradle插件

3. 同步工程,查看gradle快捷命令

4. 双击上传,查看logcat日志

出现BUILD SUCCESSFUL说明上传成功

5. 查看maven私服

已经上传成功了,看下详情

over

项目实战

  1. 在library目录下新建push.gradle文件,内容如下:

    // 引入maven工具
    apply plugin: 'maven'
    // 生成Javadoc文档
    task androidJavadocs(type: Javadoc) {
        source = android.sourceSets.main.java.srcDirs
        classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
    }
    // 生成Javadoc文档jar包
    task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
        classifier = 'javadoc'
        from androidJavadocs.destinationDir
    }
    
    // 防止编码问题
    tasks.withType(Javadoc) {
        options.addStringOption('Xdoclint:none', '-quiet')
        options.addStringOption('encoding', 'UTF-8')
        options.addStringOption('charSet', 'UTF-8')
    }
    // 生成源码文件jar包
    task androidSourcesJar(type: Jar) {
        classifier = 'sources'
        from android.sourceSets.main.java.srcDirs
    }
    
    artifacts {
        // 源码文件jar包执行命令
        archives androidSourcesJar
        // Javadoc文档jar包执行命令
        archives androidJavadocsJar
    }
    // 上传命令
    uploadArchives {
        repositories {
            mavenDeployer {
                // url 私服仓库地址
                repository(url: "http://****:8081/repository/maven-3rd-party/") {
                    // userName 私服仓库账号 password 私服仓库账号密码
                    authentication(userName: "admin", password: "admin123")
                }
    
                pom.project {
                    name 'common'//项目名称
                    version '1.0.0'//版本号
                    artifactId 'common'//最后下载的aar包名称就是这个
                    groupId 'com.bidostar.android'// 建议使用包命
                    packaging 'aar'//打包类型
                    description 'common基础库,包含butterknife注解框架,logger日志打印框架,SmartRefreshLayout刷新框架,arouter路由跳转框架,友盟统计'// 描述信息
                    licenses {
                        license {
                            name 'The Apache Software License, Version 2.0'
                            url 'http://wiki.bidostar.com/pages/viewpage.action?pageId=3943695'
                        }
                    }
                }
            }
        }
    }
    
    
  2. 打开librar目录下的build.gradle文件,添加push.gradle依赖,并同步项目

    apply plugin: 'com.android.library'
    apply plugin: 'com.jakewharton.butterknife'
    apply from: 'push.gradle' // 添加push命令插件
    android {
    compileSdkVersion rootProject.ext.android.compileSdkVersion
        defaultConfig {
            minSdkVersion rootProject.ext.android.minSdkVersion
            targetSdkVersion rootProject.ext.android.targetSdkVersion
            versionCode 1
            versionName "1.0"
        }
    }
    
  3. 开始上传

    1. 使用gradle快捷命令上传 在studio右侧Gradle窗口找到对应library打开,执行uploadArchives命令

这种方式对于单一lib上传方便快捷,在实际使用中发现如果项目中有多个lib需要上传到maven仓库的话,虽然只是执行了一条命令,实际上是把项目中所有需要上传的lib库都执行了一遍,这样会应用之前已经上传过的lib库

2. 使用cmd命令行的形式上传
    在studio下方打开Terminal命令窗口,通过命令进入到需要上传的lib库目录,执行gralde uploadArchives命令开始上传

掘金网地址