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. 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+ // noinspection GradleMisplacedStatement
45+ repositories {
46+ mavenDeployer {
47+ beforeDeployment { MavenDeployment deployment -> signing. signPom(deployment) }
48+
49+ pom. artifactId = POM_ARTIFACT_ID
50+ pom. groupId = GROUP
51+ pom. version = VERSION_NAME
52+
53+ repository(url : getReleaseRepositoryUrl()) {
54+ authentication(userName : getRepositoryUsername(), password : getRepositoryPassword())
55+ }
56+ snapshotRepository(url : getSnapshotRepositoryUrl()) {
57+ authentication(userName : getRepositoryUsername(), password : getRepositoryPassword())
58+ }
59+
60+ pom. project {
61+ name POM_NAME
62+ packaging POM_PACKAGING
63+ description POM_DESCRIPTION
64+ url POM_URL
65+
66+ scm {
67+ url POM_SCM_URL
68+ connection POM_SCM_CONNECTION
69+ developerConnection POM_SCM_DEV_CONNECTION
70+ }
71+
72+ licenses {
73+ license {
74+ name POM_LICENCE_NAME
75+ url POM_LICENCE_URL
76+ distribution POM_LICENCE_DIST
77+ }
78+ }
79+
80+ developers {
81+ developer {
82+ id POM_DEVELOPER_ID
83+ name POM_DEVELOPER_NAME
84+ }
85+ }
86+ }
87+ }
88+ }
89+ }
90+
91+ signing {
92+ required { isReleaseBuild() && gradle. taskGraph. hasTask(" uploadArchives" ) }
93+ sign configurations. archives
94+ }
95+
96+ task androidJavadocs(type : Javadoc ) {
97+ source = android. sourceSets. main. java. source
98+ classpath + = project. files(android. getBootClasspath(). join(File . pathSeparator))
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. source
109+ }
110+
111+ artifacts {
112+ archives androidSourcesJar
113+ archives androidJavadocsJar
114+ }
115+ }
0 commit comments