1+ // 依赖信息
2+ def groupIdDefined = " com.licheedev"
3+ def artifactIdDefined = " android-serialport"
4+ // 如果是测试版,版本号后面加上 -SNAPSHOT
5+ def versionDefined = rootProject. ext. versionName
6+ // 其他信息
7+ def gitUrl = " https://github.com/licheedev/Android-SerialPort-API"
8+
9+ // 配置是否上传
10+ def toUpload = true
11+
12+ // 在根build.gradle中加入,最新版本号参考 https://github.com/Kotlin/dokka#using-dokka
13+ // classpath 'org.jetbrains.dokka:dokka-gradle-plugin:1.4.32'
14+
15+ // 在module的build.gradle末位加入
16+ // apply from: '../maven_publish.gradle'
17+
18+ if (toUpload) {
19+ apply plugin : ' signing'
20+ apply plugin : ' maven-publish'
21+ apply plugin : ' org.jetbrains.dokka'
22+
23+ // <editor-fold desc="打包源码和javadoc">
24+ // 打包源码
25+ task sourcesJar(type : Jar ) {
26+ from android. sourceSets. main. java. srcDirs
27+ classifier = ' sources'
28+ }
29+
30+ task javadoc(type : Javadoc ) {
31+ failOnError false
32+ source = android. sourceSets. main. java. sourceFiles
33+ options {
34+ encoding = " utf-8"
35+ charSet ' UTF-8'
36+ }
37+ classpath + = project. files(android. getBootClasspath(). join(File . pathSeparator))
38+ classpath + = configurations. compile
39+ }
40+
41+ // 打包javadoc
42+ task javadocJar(type : Jar , dependsOn : javadoc) {
43+ classifier = ' javadoc'
44+ from javadoc. destinationDir
45+ }
46+
47+ // 打包包含kotlin源码的javadoc
48+ task kotlinDocJar(type : Jar , dependsOn : dokkaHtml) {
49+ classifier = ' javadoc'
50+ from dokkaHtml. outputDirectory
51+ }
52+ // </editor-fold>
53+
54+ afterEvaluate {
55+
56+ publishing {
57+ publications {
58+ mavenAndroid(MavenPublication ) {
59+ from components. release
60+
61+ groupId " $groupIdDefined "
62+ artifactId " $artifactIdDefined "
63+ version " $versionDefined "
64+ // 上传source
65+ artifact sourcesJar
66+ // 上传javadoc
67+ if (project. plugins. hasPlugin(' kotlin-android' )) {
68+ artifact kotlinDocJar
69+ } else {
70+ artifact javadocJar
71+ }
72+
73+ pom {
74+ name = ' Android-SerialPort-API'
75+ description = ' Android-SerialPort-API'
76+ url = " $gitUrl "
77+
78+ // licenses {
79+ // license {
80+ // name = 'The MIT License'
81+ // url = 'https://opensource.org/licenses/MIT'
82+ // }
83+ // }
84+
85+ licenses {
86+ license {
87+ name = ' The Apache License, Version 2.0'
88+ url = ' http://www.apache.org/licenses/LICENSE-2.0.txt'
89+ }
90+ }
91+
92+ developers {
93+ developer {
94+ id = ' licheedev'
95+ name = ' John Lee'
96+ 97+ }
98+ }
99+ scm {
100+ connection = " $gitUrl "
101+ developerConnection = " ${ gitUrl} .git"
102+ url = " $gitUrl "
103+ }
104+ }
105+ }
106+ }
107+
108+ repositories {
109+
110+ maven {
111+ // 依赖发布地址
112+ def releasesRepoUrl = " https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/"
113+ def snapshotsRepoUrl = " https://s01.oss.sonatype.org/content/repositories/snapshots/"
114+ url = version. endsWith(' SNAPSHOT' ) ? snapshotsRepoUrl : releasesRepoUrl
115+
116+ // 配置账号密码
117+ println " user=${ ossrhUsername} ,key=${ ossrhPassword} "
118+ credentials {
119+ username " ${ ossrhUsername} "
120+ password " ${ ossrhPassword} "
121+ }
122+ }
123+ }
124+ }
125+
126+ signing {
127+ sign publishing. publications. mavenAndroid
128+ }
129+ }
130+ }
0 commit comments