-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbintrayUpload.gradle
158 lines (144 loc) · 4.99 KB
/
bintrayUpload.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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
apply plugin: 'com.jfrog.bintray'
apply plugin: 'com.github.dcendents.android-maven'
// load properties
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
// read properties
//项目名称
def projectName = properties.getProperty("project.name")
//项目的groupId
def projectGroupId = properties.getProperty("project.groupId")
//项目的artifactId,这里需要跟项目的library名称一致,不然传到bintray的包和名字对不上会找不到
def projectArtifactId = properties.getProperty("project.artifactId")
//包类型,Android库是aar
def projectPackaging = properties.getProperty("project.packaging")
//library的版本号
def projectVersionName = properties.getProperty("project.version")
//网站地址
def projectSiteUrl = properties.getProperty("project.siteUrl")
//开源的git地址
def projectGitUrl = properties.getProperty("project.gitUrl")
//项目库的描述
def projectDesc = properties.getProperty("project.desc")
//开发者标识ID
def developerId = properties.getProperty("developer.id")
//开发者名称
def developerName = properties.getProperty("developer.name")
//开发者邮箱
def developerEmail = properties.getProperty("developer.email")
//这个就是刚才注册的bintray用户名
def bintrayUser = properties.getProperty("bintray.user")
//这个是前面提到的bintray上面的API Key
def bintrayApikey = properties.getProperty("bintray.apikey")
group = projectGroupId
// This generates POM.xml with proper parameters
install {
repositories.mavenInstaller {
pom {
project {
packaging projectPackaging
groupId projectGroupId
artifactId projectArtifactId
name projectName
description projectDesc
version projectVersionName
url projectSiteUrl
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
developers {
developer {
id developerId
name developerName
email developerEmail
}
}
scm {
connection projectGitUrl
developerConnection projectGitUrl
url projectSiteUrl
}
}
}
}
}
version = projectVersionName
/*task javadoc(type: Javadoc) {
options.encoding = "utf-8"
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
*//**
* 这里将源码打包成 xxx-sources.jar
*//*
task sourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.srcDirs
}
artifacts {
archives sourcesJar
}
android.libraryVariants.all { variant ->
println variant.javaCompile.classpath.files
if (variant.name == 'release') { //我们只需 release 的 javadoc
task("generate${variant.name.capitalize()}Javadoc", type: Javadoc) {
// title = ''
// description = ''
source = variant.javaCompile.source
classpath = files(variant.javaCompile.classpath.files, project.android.getBootClasspath())
options {
encoding "utf-8"
links "http://docs.oracle.com/javase/7/docs/api/"
linksOffline "http://d.android.com/reference", "${android.sdkDirectory}/docs/reference"
}
exclude '**//*BuildConfig.java'
exclude '**//*R.java'
}
task("javadoc${variant.name.capitalize()}Jar", type: Jar, dependsOn: "generate${variant.name.capitalize()}Javadoc") {
classifier = 'javadoc'
from tasks.getByName("generate${variant.name.capitalize()}Javadoc").destinationDir
}
artifacts {
archives tasks.getByName("javadoc${variant.name.capitalize()}Jar")
}
}
}*/
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
task javadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives javadocJar
archives sourcesJar
}
// bintray configuration
bintray {
user = bintrayUser
key = bintrayApikey
configurations = ['archives']
pkg {
repo = "maven"
name = projectName
desc = projectDesc
websiteUrl = projectSiteUrl
vcsUrl = projectGitUrl
licenses = ["Apache-2.0"]
publish = true
publicDownloadNumbers = true
}
}