forked from controlsfx/controlsfx
-
Notifications
You must be signed in to change notification settings - Fork 0
/
mavenPublish.gradle
118 lines (107 loc) · 3.6 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
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
}
//ext {
// pomExclusions = []
//}
private configurePOM(def pom) {
pom.project {
name 'ControlsFX'
description 'High quality UI controls and other tools to complement the core JavaFX distribution'
url 'http://www.controlsfx.org/'
modelVersion '4.0.0'
packaging 'jar'
scm {
connection 'scm:hg:https://bitbucket.org/controlsfx/controlsfx'
developerConnection 'scm:hg:ssh://hg@bitbucket.org/controlsfx/controlsfx'
url 'https://bitbucket.org/controlsfx/controlsfx'
}
developers {
developer {
name 'Jonathan Giles'
email 'jonathan@jonathangiles.net'
roles {
role 'author'
role 'developer'
}
}
}
licenses {
license {
name 'The 3-Clause BSD License'
url 'http://www.opensource.org/licenses/bsd-license.php'
distribution 'repo'
}
}
properties {
//project.build.sourceEncoding='UTF-8'
setProperty('project.build.sourceEncoding', 'UTF8')
}
//}
//whenConfigured{
// dependencies = dependencies.findAll {dep -> !pomExclusions.contains(dep.artifactId) }
//}
}
}
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()
}
}
}