以下流程基于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
项目实战
-
在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' } } } } } } 复制代码
-
打开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" } } 复制代码
-
开始上传
- 使用gradle快捷命令上传 在studio右侧Gradle窗口找到对应library打开,执行uploadArchives命令
这种方式对于单一lib上传方便快捷,在实际使用中发现如果项目中有多个lib需要上传到maven仓库的话,虽然只是执行了一条命令,实际上是把项目中所有需要上传的lib库都执行了一遍,这样会应用之前已经上传过的lib库
2. 使用cmd命令行的形式上传
在studio下方打开Terminal命令窗口,通过命令进入到需要上传的lib库目录,执行gralde uploadArchives命令开始上传
复制代码