目录
1、在GitHub上创建一个仓库,创建完成后,复制https仓库git地址,通过命令将空的仓库clone到本地
一、编写Maven发布脚本任务
在你的library模块下的build.gradle文件中添加以下脚本任务:
//打包发布配置开始
apply plugin: 'maven'
ext {
//带有aar和pom等打包文件的输出目录,project.projectDir.parent:表示输出到当前项目的根目录
GITHUB_REPO_PATH = project.projectDir.parent
//组Id,即远程依赖库的包名
PUBLISH_GROUP_ID = 'com.test.sdk'
//远程依赖库的库名
PUBLISH_ARTIFACT_ID = 'test-android'
//版本号
PUBLISH_VERSION = '1.0.0'
//以上信息最终组合起来,也就是项目里依赖的地址为:com.test.sdk:test-android:1.0.0
}
//以下固定不用改
uploadArchives{
repositories.mavenDeployer {
def deployPath = file(project.GITHUB_REPO_PATH)
repository(url: "file://${deployPath.absolutePath}")
pom.project {
groupId project.PUBLISH_GROUP_ID
artifactId project.PUBLISH_ARTIFACT_ID
version project.PUBLISH_VERSION
}
}
}
//打包jar和aar
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.sourceFiles
}
artifacts {
archives androidSourcesJar
}
使用Terminal命令,定位到library目录下,键入命令:../gradlew uploadArchives 等待执行完成后,会在根目录下输出com.test.sdk目录,sdk目录中为test-android文件夹,其中是以版本号命名的aar包、pom.xml文件、.md5、.sha1等文件信息。
二、上传编译文件到GitHub,生成远程仓库连接
1、在GitHub上创建一个仓库,创建完成后,复制https仓库git地址,通过命令将空的仓库clone到本地
//举例:
git clone https://github.com/sdk/test.git
2、上传编译产物到GitHub
将步骤一中的以com开头的文件全部复制到本地空仓库中,然后将com文件全部上传到GitHub,注意要提交到GitHub仓库的根目录下,这个com.test.sdk路径也不要改动,,否则生成的pom文件中有相互依赖的包的话,会找不到对应的依赖库文件。
//初始化仓库
git init
//把com等文件添加到仓库
git add com
//把文件提交到仓库
git commit -m "first commit"
//关联远程仓库,master为分支名称
git remote add origin master
//把本地库的所有内容推送到远程库上
git push -u origin master
上传完成,即可通过仓库地址在其他项目中在线依赖拉取资源文件。
仓库地址:
maven { url "https://raw.githubusercontent.com/user/sdk/master" }
注意:
- https://raw.githubusercontent.com/:GitHub仓库固定地址。
- user/sdk/:其中user为你的仓库账户名,sdk为你的仓库名称。
- master:你GitHub仓库的分支名称,有的默认为master,有的为main。
远程依赖库地址:
api 'com.test.sdk:test-android:1.0.0'
注意:
- com.test.sdk为你前面打包发布时命名的组Id。
- test-android:为你前面打包发布时的库名称。
- 1.0.0:为你前面打包发布时的库版本号。
完成上面的步骤后,GitHub远程依赖库就创建完成了,后续即可通过指定Maven仓库地址和远程依赖库地址进行依赖使用了。
三、使用
在项目级的build.gradle中添加Maven仓库地址:
allprojects {
repositories {
google()
jcenter()
maven { url "https://raw.githubusercontent.com/user/sdk/master" }
}
}
在module模块下的build.gradle中添加远程依赖:
dependencies {
api fileTree(include: ['*.jar','*.aar'], dir: 'libs')
api 'com.test.sdk:test-android:1.0.0'
}
完!!!