Android将已有文件(如aar)上传到maven仓库

背景

Android有时候项目当中用到第三方的时候,可能通过maven仓库引入或者通过aar包引入;aar包还好,可以直接放到项目里,但有时候也可能比较麻烦,假如多个项目用到同个aar包,还需要将aar包搬进多个项目中进行引用;而通过maven仓库引用则没这个烦恼,但有个问题,假如用到了国外的maven,同时国外的maven被强、国内又没有相关代理那怎么办,只能想办法下载原有maven仓库中的aar包,此时的问题又回到了多个项目引用aar包的麻烦事

正文

新建一个gradle,比如叫xxxaar_publish.gradle,其内容如下:

apply plugin:'maven-publish'

publishing {
    repositories {
        maven {
            //提交到远程服务器:
            credentials {
                //maven用户名
                username mavenUn
                //maven密码
                password mavenPwd
            }
            //maven地址
            url mavenUrl
        }
    }

    publications {
        common(MavenPublication){
            artifact('xxxxx.aar'){
                groupId 'com.yyyyy'
                artifactId 'zzzz'
                version '1.0.0'
            }
        }
    }
}

写好xxxaar_publish.gradle的内容之后,就在项目目录下的build.gradle文件中引用

apply from: 'xxxaar_publish.gradle'

Sync now之后,可以看到Gradle列表当中有所改变


image.png

点击publish或者publishCommonPublicationToMavenRepository后就可上传到maven仓库上

补充

  1. 万一想上传到maven仓库上的aar不止一个怎么办?
    新建一个如xxx2aar_publish.gradle的文件,内容和xxxaar_publish.gradle类似,只不过artifact、groupId、artifactId和version都得改成另外的一个aar的相关信息;另外需要在build.gradle文件中添加代码:
apply from: 'xxx2aar_publish.gradle'

Sync now之后在Gradle列表中多出一个publishCommonPublicationToMaven2Repository

  1. MavenPublication这个类中支持的写法不止以上一种,还可以写成
publications {
     common(MavenPublication){
             groupId 'com.yyyyy'
             artifactId 'zzzz'
             version '1.0.0'
             artifact 'xxxxx.aar'
     }
}

更多的可参考MavenPublication这个类

  1. 如果需要同时传多个aar,就需要对publications做下改动,其中以上内容中的common,其实可看作一个key值,可随意命名,若要同时上传多个,可写成如下:
    publications {
        xxx1(MavenPublication) {
            artifact('xxx1.aar') {
                groupId 'com.yyyy'
                artifactId 'zzzz1'
                version '1.0.0'
            }
        }

        xxx2(MavenPublication) {
            artifact('xxx2.aar') {
                groupId 'com.yyyy'
                artifactId 'zzzz2'
                version '1.0.0'
            }
        }
    }

你可能感兴趣的:(Android将已有文件(如aar)上传到maven仓库)