-
Notifications
You must be signed in to change notification settings - Fork 1
/
build.publish.gradle
78 lines (67 loc) · 2.42 KB
/
build.publish.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
apply plugin: 'maven'
apply plugin: 'signing'
task javadocJar(type: Jar) {
classifier = 'javadoc'
from javadoc
}
task sourcesJar(type: Jar) {
classifier = 'sources'
from sourceSets.main.allSource
}
artifacts {
archives javadocJar, sourcesJar
}
boolean validProperty(propertyName) {
try { project.property(propertyName) != null }
catch (MissingPropertyException) { false }
}
assert validProperty('signing.keyId'), 'properties for signing must be provided'
assert validProperty('signing.secretKeyRingFile'), 'properties for signing must be provided'
assert validProperty('sonatypeUsername'), 'properties for publish must be provided'
assert validProperty('sonatypeFullname'), 'properties for publish must be provided'
String askPassword(prompt) {
"${System.console().readPassword(prompt)}"
}
if (!validProperty('sining.password')) {
def newPassword =
askPassword("\nEnter password for PGP key ${property('signing.keyId')}: ")
ext.'signing.password' = newPassword
}
signing {
sign configurations.archives
}
uploadArchives {
repositories.mavenDeployer {
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
authentication(userName: sonatypeUsername, password: sonatypePassword)
}
snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
authentication(userName: sonatypeUsername, password: sonatypePassword)
}
pom.project {
name project.name
packaging 'jar'
description project.description
url 'https://github.com/tkawachi/exhash'
scm {
url '[email protected]:tkawachi/exhash.git'
connection 'scm:git:[email protected]:tkawachi/exhash.git'
developerConnection 'scm:git:[email protected]:tkawachi/exhash.git'
}
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
distribution 'repo'
}
}
developers {
developer {
id sonatypeUsername
name sonatypeFullname
}
}
}
}
}