forked from gluonhq/ignite
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmavenPublish.gradle
129 lines (120 loc) · 3.94 KB
/
mavenPublish.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
apply plugin: 'signing'
configurations {
samples { extendsFrom runtime}
jdk
maven { extendsFrom archives }
published { extendsFrom archives, signatures}
}
signing {
required = { gradle.taskGraph.hasTask(uploadPublished) && !version.endsWith("SNAPSHOT") }
sign configurations.archives
}
repositories {
mavenLocal()
maven { url 'https://oss.sonatype.org/content/groups/staging' }
mavenCentral()
}
uploadPublished {
doFirst {
// configure repositories in a doFirst so we can late bind the properties
checkPasswords()
repositories {
mavenDeployer {
configurePOM(pom)
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
authentication userName: sonatypeUsername, password: sonatypePassword
}
repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
authentication userName: sonatypeUsername, password: sonatypePassword
}
}
}
}
configuration = configurations.published
}
install {
doFirst {
configurePOM(repositories.mavenInstaller.pom)
}
configuration = configurations.published
}
private configurePOM(def pom) {
pom.project {
name "Gluon Ignite ${project.name.capitalize()}"
description project.ext.description
url 'http://gluonhq.com/open-source/ignite/'
modelVersion '4.0.0'
packaging 'jar'
scm {
connection 'scm:hg:https://bitbucket.org/gluon-oss/ignite'
developerConnection 'scm:hg:https://bitbucket.org/gluon-oss/ignite'
url 'https://bitbucket.org/gluon-oss/ignite'
}
developers {
developer {
name 'Eugene Ryzhikov'
email '[email protected]'
roles {
role 'author'
role 'developer'
}
}
developer {
name 'Johan Vos'
email '[email protected]'
roles {
role 'author'
role 'developer'
}
}
developer {
name 'Joeri Sykora'
email '[email protected]'
roles {
role 'author'
role 'developer'
}
}
developer {
name 'Erwin Morrhey'
email '[email protected]'
roles {
role 'author'
role 'developer'
}
}
}
licenses {
license {
name 'The 3-Clause BSD License'
url 'http://www.opensource.org/licenses/bsd-license.php'
distribution 'repo'
}
}
}
}
ext.checkPasswords = {
try {
def check = [sonatypeUsername, sonatypePassword]
println "Using sonatype user $sonatypeUsername"
} catch (MissingPropertyException e) {
e.printStackTrace()
Console console = System.console()
console.printf "\n\nIn order to upload to Sonatype we need your username and password.\nEnter a blank username or password to skip upload\n\n"
ext.sonatypeUsername = console.readLine("Sonatype Username: ")
ext.sonatypePassword = new String(console.readPassword("Sonatype Password: "))
if (!sonatypePassword || !sonatypeUsername) {
console.printf("\n\nSonatype upload aborted")
subprojects {
signing {
enabled = false
}
uploadPublished {
enabled = false
}
}
throw new StopExecutionException()
}
}
}