-
Notifications
You must be signed in to change notification settings - Fork 0
/
mavenpush.gradle
97 lines (79 loc) · 3.11 KB
/
mavenpush.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
apply plugin: 'maven-publish'
apply plugin: 'com.jfrog.bintray'
// bintray平台信息配置
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
// 定义参数
def gitUrl = properties.getProperty("git_url")
def groupIdDefined = properties.getProperty("group_id")
def artifactIdDefined = properties.getProperty("upload_lib_name")
def versionDefined = properties.getProperty("lib_version")
bintray {
user = properties.getProperty("bintray_user_name")
key = properties.getProperty("bintray_user_key")
// 'MyPublication'与下面的publishing闭包里的名称对应
publications = ['MyPublication']
// 上传后立即发布到Bintray平台
publish = true
pkg {
// 必填。bintray平台仓库名,必须已经创建过。
repo = properties.getProperty("bintray_repository")
// 必填。仓库里包package的名称,没有的话会自动创建。
name = properties.getProperty("upload_lib_name")
// 首次创建package则必须,否则选填。
licenses = ["Apache-2.0"]
// 首次创建package则必须,否则选填。
vcsUrl = gitUrl
version {
name = "$versionDefined"
}
}
}
// 构件文件和POM信息配置
project.afterEvaluate {
publishing {
publications {
MyPublication(MavenPublication) {
artifact properties.getProperty("aar_dir")
artifact sourcesJar
artifact javadocJar
groupId "$groupIdDefined"
artifactId "$artifactIdDefined"
version "$versionDefined"
pom.withXml {
def dependenciesNode = asNode().appendNode('dependencies')
// Iterate over the implementation dependencies (we don't want the test ones), adding a <dependency> node for each
configurations.implementation.allDependencies.each {
// Ensure dependencies such as fileTree are not included in the pom.
if (it.name != 'unspecified') {
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', it.group)
dependencyNode.appendNode('artifactId', it.name)
dependencyNode.appendNode('version', it.version)
}
}
}
}
}
}
}
// 生成sourceJar和javaDocJar构件
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
getArchiveClassifier().set('source')
}
task javadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
// classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
classpath += configurations.compile
options.encoding = 'UTF-8'
failOnError false
}
task javadocJar(type: Jar, dependsOn: javadoc) {
from javadoc.destinationDir
getArchiveClassifier().set('javadoc')
}
artifacts {
archives sourcesJar
archives javadocJar
}