-
Notifications
You must be signed in to change notification settings - Fork 0
/
publish_github_packages.gradle
83 lines (71 loc) · 2.43 KB
/
publish_github_packages.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
/*
上传到公共组件库 https://github.com/TomGarden/TomAndroidLibs
而不是上传到本代码所在的代码仓库
要想手动发布就去执行 bintrayUpload.sh
Github Actions 工作流暂未完成
* */
ext {
moduleVersionCode = 0121
moduleVersionName = '0.1.21'
moduleName = 'lib_log'
mavenGroupId = 'io.github.tomgarden'
}
task androidSourcesJar(type: Jar) {
/*生成 sources.jar 应对生成的 aar 跳转代码无法阅读的问题*/
archiveClassifier.set('sources')
from android.sourceSets.main.java.srcDirs
}
publishing {
publications {
gpr(MavenPublication) {
groupId mavenGroupId
artifactId moduleName
version moduleVersionName
artifact("$buildDir/outputs/aar/$moduleName-release.aar")
// 将 generateSourcesJar Task 生成的 sources.jar 也一并上传
artifact(androidSourcesJar)
}
}
repositories {
//如果失败了 一个一个上传即可
//上传到 maven center
// maven {
// name = moduleName
// url = "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
// credentials {
// username = System.getenv("MAVEN_USERNAME")
// password = System.getenv("MAVEN_PASSWORD")
// }
// }
//上传到 Github Packages
maven {
name = moduleName
url = uri("https://maven.pkg.github.com/TomGarden/lib_log")
credentials {
username = project.findProperty("gpr.user") ?: System.getenv("TOMGARADEN_USERNAME")
password = project.findProperty("gpr.key") ?: System.getenv("TOMGARADEN_WRITE_PACKAGES_TOKEN")
}
}
}
}
//这个代码块是权宜之计 ; 并非所有情况下都需要做这个代码块 , 如果本身可以打出需要的包名的包 , 此处即可注释
android {
buildTypes {
archivesBaseName = moduleName
}
}
task testTask {
//测试 gradle 语法
println(System.getenv("TOMGARADEN_USERNAME"))
println(System.getenv("TOMGARADEN_WRITE_PACKAGES_TOKEN"))
println("$buildDir/outputs/aar/LibLog-release.aar")
}
//在 project 执行命令, 即可完成上传
//分步执行
//../gradlew clean
//../gradlew build
//../gradlew publish
//一次执行所有
//./gradlew clean build publish
//仅针对 LibLog 执行相关命令
//./gradlew :LibLog:clean :LibLog:build :LibLog:publish