1+ /*
2+ * Copyright 2013 Chris Banes
3+ *
4+ * Licensed under the Apache License, Version 2.0 (the "License");
5+ * you may not use this file except in compliance with the License.
6+ * You may obtain a copy of the License at
7+ *
8+ * http://www.apache.org/licenses/LICENSE-2.0
9+ *
10+ * Unless required by applicable law or agreed to in writing, software
11+ * distributed under the License is distributed on an "AS IS" BASIS,
12+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+ * See the License for the specific language governing permissions and
14+ * limitations under the License.
15+ */
16+
17+ apply plugin : ' maven'
18+ apply plugin : ' signing'
19+
20+ def isReleaseBuild () {
21+ return VERSION_NAME . contains(" SNAPSHOT" ) == false
22+ }
23+
24+ def getReleaseRepositoryUrl () {
25+ return hasProperty(' RELEASE_REPOSITORY_URL' ) ? RELEASE_REPOSITORY_URL
26+ : " https://oss.sonatype.org/service/local/staging/deploy/maven2/"
27+ }
28+
29+ def getSnapshotRepositoryUrl () {
30+ return hasProperty(' SNAPSHOT_REPOSITORY_URL' ) ? SNAPSHOT_REPOSITORY_URL
31+ : " https://oss.sonatype.org/content/repositories/snapshots/"
32+ }
33+
34+ def getRepositoryUsername () {
35+ return hasProperty(' NEXUS_USERNAME' ) ? NEXUS_USERNAME : " "
36+ }
37+
38+ def getRepositoryPassword () {
39+ return hasProperty(' NEXUS_PASSWORD' ) ? NEXUS_PASSWORD : " "
40+ }
41+
42+ afterEvaluate { project ->
43+ uploadArchives {
44+ repositories {
45+ mavenDeployer {
46+ beforeDeployment { MavenDeployment deployment -> signing. signPom(deployment) }
47+
48+ pom. groupId = GROUP
49+ pom. artifactId = POM_ARTIFACT_ID
50+ pom. version = VERSION_NAME
51+
52+ repository(url : getReleaseRepositoryUrl()) {
53+ authentication(userName : getRepositoryUsername(), password : getRepositoryPassword())
54+ }
55+ snapshotRepository(url : getSnapshotRepositoryUrl()) {
56+ authentication(userName : getRepositoryUsername(), password : getRepositoryPassword())
57+ }
58+
59+ pom. project {
60+ name POM_NAME
61+ packaging POM_PACKAGING
62+ description POM_DESCRIPTION
63+ url POM_URL
64+
65+ scm {
66+ url POM_SCM_URL
67+ connection POM_SCM_CONNECTION
68+ developerConnection POM_SCM_DEV_CONNECTION
69+ }
70+
71+ licenses {
72+ license {
73+ name POM_LICENCE_NAME
74+ url POM_LICENCE_URL
75+ distribution POM_LICENCE_DIST
76+ }
77+ }
78+
79+ developers {
80+ developer {
81+ id POM_DEVELOPER_ID
82+ name POM_DEVELOPER_NAME
83+ }
84+ }
85+ }
86+ }
87+ }
88+ }
89+
90+ signing {
91+ required { isReleaseBuild() && gradle. taskGraph. hasTask(" uploadArchives" ) }
92+ sign configurations. archives
93+ }
94+
95+ task androidJavadocs(type : Javadoc ) {
96+ source = android. sourceSets. main. java. srcDirs
97+ classpath + = project. files(android. getBootClasspath(). join(File . pathSeparator))
98+ failOnError false
99+ }
100+
101+ task androidJavadocsJar(type : Jar , dependsOn : androidJavadocs) {
102+ classifier = ' javadoc'
103+ from androidJavadocs. destinationDir
104+ }
105+
106+ task androidSourcesJar(type : Jar ) {
107+ classifier = ' sources'
108+ from android. sourceSets. main. java. sourceFiles
109+ }
110+
111+ artifacts {
112+ archives androidSourcesJar
113+ archives androidJavadocsJar
114+ }
115+ }
0 commit comments