-
-
Notifications
You must be signed in to change notification settings - Fork 53
/
publish.gradle
131 lines (116 loc) · 3.86 KB
/
publish.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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
apply plugin: 'com.jfrog.bintray'
apply plugin: 'maven-publish'
apply from: '../dependencies.gradle'
ext.repository = [
name : "needs",
description: "An easy way to implement modern permission instructions popup.",
websiteUrl : "https://github.com/skydoves/Needs",
scm : 'scm:[email protected]/skydoves/Needs.git'
]
def (property_user, property_key) = getBintrayProperties()
bintray {
user = property_user
key = property_key
publications = ["release"]
publish = true
override = true
dryRun = false
pkg {
repo = "maven"
name = repository.name
userOrg = "devmagician"
desc = repository.description
websiteUrl = repository.websiteUrl
vcsUrl = "${websiteUrl}.git"
issueTrackerUrl = "${websiteUrl}/issues"
licenses = ["Apache-2.0"]
labels = ["android"]
publicDownloadNumbers = false
githubRepo = websiteUrl
githubReleaseNotesFile = "${websiteUrl}/releases"
version {
desc = repository.description
name = versions.versionName
vcsTag = versions.versionName
released = new Date()
gpg { sign = true }
}
}
}
afterEvaluate {
publishing {
publications {
release(MavenPublication) {
from components.release
group = "com.github.skydoves"
artifactId = repository.name
version = versions.versionName
artifact androidJavadocsJar
artifact(sourceJar)
pom {
name = repository.name
description = repository.description
url = repository.websiteUrl
licenses {
license {
name = "The Apache License, Version 2.0"
url = "http://www.apache.org/licenses/LICENSE-2.0.txt"
}
}
developers {
developer {
id = "skydoves"
name = "Jaewoong Eum"
}
}
scm {
connection = repository.scm
developerConnection = repository.scm
url = repository.websiteUrl
}
}
}
}
}
}
def getBintrayProperties() {
def filename = "local.properties"
def propsFile = rootProject.file(filename)
if (propsFile.exists()) {
Properties properties = new Properties()
properties.load(project.rootProject.file(filename).newDataInputStream())
return [
properties.getProperty("bintray.user"),
properties.getProperty("bintray.key")
]
} else {
print(filename + " does not exist!")
return ["", ""]
}
}
task checkBintrayConfig {
doLast {
def (user, key) = getBintrayProperties()
if (user == null || user.isEmpty() || key == null || key.isEmpty()) {
throw new IllegalArgumentException("Must specify Bintray information! Check your local.properties file.")
}
}
}
task androidJavadocs(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
android.libraryVariants.all { variant ->
if (variant.name == 'release') {
owner.classpath += variant.javaCompileProvider.get().classpath
}
}
exclude '**/R.html', '**/R.*.html', '**/index.html'
}
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
archiveClassifier.set('javadoc')
from androidJavadocs.destinationDir
}
task sourceJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier "sources"
}