-
Notifications
You must be signed in to change notification settings - Fork 19
/
upload.gradle
135 lines (117 loc) · 5.52 KB
/
upload.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
apply plugin: 'maven-publish'
apply plugin: 'signing'
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
task sourceJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier "sources"
}
publishing {
publications {
upload(MavenPublication) {
groupId project.GROUP_ID
artifactId project.ARTIFACT_ID
version project.VERSION
artifact(sourceJar)
artifact("$buildDir/outputs/aar/$ARTIFACT_ID-release.aar")
def rootDir = project.getParent().getName()
pom.packaging = 'aar'
pom.withXml {
def dependenciesNode = asNode().appendNode('dependencies')
// Iterate implementation dependencies
configurations.implementation.allDependencies.each {
if (it.group != null) {
def dependencyNode = dependenciesNode.appendNode('dependency')
if (it.group == rootDir) {
dependencyNode.appendNode('groupId', project.GROUP_ID)
} else {
dependencyNode.appendNode('groupId', it.group)
}
if (it.version == 'unspecified') {
dependencyNode.appendNode('version', project.VERSION)
} else {
dependencyNode.appendNode('version', it.version)
}
dependencyNode.appendNode('artifactId', it.name)
}
}
asNode().appendNode('name', "Chameleon android SDK")
asNode().appendNode('description',
"Chameleon android SDK uses some most common native rendering engines " +
"as it's fundamental lib, and extended some general engineering capabilities" +
". The currently supported rendering engines are weex and react native, and " +
"you can only choose one of them as the rendering engine for every single project.")
asNode().appendNode('url', "https://github.com/chameleon-team/chameleon-sdk-android.git")
def licensesNode = asNode().appendNode('licenses')
def licenseNode = licensesNode.appendNode('license')
licenseNode.appendNode('name', "The Apache License, Version 2.0")
licenseNode.appendNode('url', "http://www.apache.org/licenses/LICENSE-2.0.txt")
def developersNode = asNode().appendNode('developers')
def developerNode1 = developersNode.appendNode('developer')
developerNode1.appendNode('name', "sxychenjing")
developerNode1.appendNode('email', "[email protected]")
def developerNode2 = developersNode.appendNode('developer')
developerNode2.appendNode('name', "KSKjust")
developerNode2.appendNode('email', "[email protected]")
def scmNode = asNode().appendNode('scm')
scmNode.appendNode('connection', "scm:git:https://github.com/chameleon-team/chameleon-sdk-android.git")
scmNode.appendNode('developerConnection', "scm:git:https://github.com/chameleon-team/chameleon-sdk-android.git")
scmNode.appendNode('url', "https://github.com/chameleon-team/chameleon-sdk-android.git")
}
if (!project.VERSION.endsWith('-SNAPSHOT')) {
artifact(file("$buildDir/outputs/aar/$ARTIFACT_ID-release.aar.asc")) {
classifier = null
extension = 'aar.asc'
builtBy(signArtifactAar)
}
artifact(file("$buildDir/libs/$ARTIFACT_ID-sources.jar.asc")) {
classifier = 'sources'
extension = 'jar.asc'
builtBy(signArtifactSource)
}
artifact(file("$buildDir/publications/upload/pom-default.xml.asc")) {
classifier = null
extension = 'pom.asc'
builtBy(signArtifactPom)
}
}
}
}
// 这里就是在创建issue成功后,对方回复的地址
repositories {
maven {
name 'release'
url 'https://oss.sonatype.org/service/local/staging/deploy/maven2'
credentials {
username = properties.getProperty("oss.usr")
password = properties.getProperty("oss.pwd")
}
}
maven {
name 'snapshot'
url 'https://oss.sonatype.org/content/repositories/snapshots/'
credentials {
username = properties.getProperty("oss.usr")
password = properties.getProperty("oss.pwd")
}
}
}
}
ext."signing.keyId" = properties.getProperty("signing.keyId")
ext."signing.password" = properties.getProperty("signing.password")
ext."signing.secretKeyRingFile" = properties.getProperty("signing.secretKeyRingFile")
task signArtifactAar() {
doLast {
signing.sign file("$buildDir/outputs/aar/$ARTIFACT_ID-release.aar")
}
}
task signArtifactSource(dependsOn: sourceJar) {
doLast {
signing.sign file("$buildDir/libs/$ARTIFACT_ID-sources.jar")
}
}
task signArtifactPom() {
doLast {
signing.sign file("$buildDir/publications/upload/pom-default.xml")
}
}