/
build.gradle
135 lines (107 loc) · 4.46 KB
/
build.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
129
130
131
132
133
134
135
import org.gradle.internal.jvm.Jvm
def javaV = Jvm.current().javaVersion
if (!javaV.java7Compatible) {
throw new GradleException('Gradle is not running with a Java 7-compatible JDK')
}
def majorConf = new ConfigSlurper().parse(new File(project.projectDir, "version.groovy").toURI().toURL())
ext.majorVersion = majorConf.major as String
subprojects {
apply plugin: 'java'
def versionConfig = new ConfigSlurper().parse(new File(project.projectDir, "version.groovy").toURI().toURL());
project.version = "${parent.majorVersion}.${versionConfig.minor}.${versionConfig.build}"
group 'io.github.cubedtear'
sourceCompatibility = 1.7
targetCompatibility = 1.7
repositories {
mavenCentral()
}
if (System.getenv('CI') == null) {
apply plugin: 'signing'
apply plugin: 'maven'
uploadArchives.mustRunAfter build
task sourceJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives jar
archives sourceJar
archives javadocJar
}
signing {
required { gradle.taskGraph.hasTask("uploadArchives") }
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: ossrhUsername, password: ossrhPassword)
}
snapshotRepository(url: 'https://oss.sonatype.org/content/repositories/snapshots/') {
authentication(userName: ossrhUsername, password: ossrhPassword)
}
pom.project {
name = project.name
packaging 'jar'
artifactId project.name
description = 'Utility library to help making any kind of app or game.'
url 'https://github.com/cubedtear/jcubit'
scm {
connection 'scm:git:git@github.com:cubedtear/jcubit.git'
developerConnection 'scm:git:git@github.com:cubedtear/jcubit.git'
url 'https://github.com/cubedtear/jcubit'
}
licenses {
license {
name = 'The Apache License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
developers {
developer {
id 'cubedtear'
name = 'Aritz Lopez'
email 'cubedtear@gmail.com'
}
}
}
}
}
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath "io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.5.3"
}
}
apply plugin: 'io.codearte.nexus-staging'
apply plugin: 'maven'
if (System.getenv('CI') == null) {
nexusStaging {
packageGroup = "io.github.cubedtear"
}
closeAndPromoteRepository {}.mustRunAfter subprojects.uploadArchives
task buildDeployAndRelease {
dependsOn = [subprojects.build, subprojects.uploadArchives, closeAndPromoteRepository]
group = BasePlugin.UPLOAD_GROUP
description = "Builds and deploys to Maven Central, and closes and promotes the repository"
}
gradle.taskGraph.addTaskExecutionGraphListener { graph ->
Task uploadTask = graph.allTasks.find { t -> t.name.equalsIgnoreCase('uploadArchives') }
if (uploadTask != null && (!properties.containsKey('ossrhUsername') || !properties.containsKey('ossrhPassword'))) {
ext.ossrhUsername = ''
ext.ossrhPassword = ''
throw new GradleException("You don't have OSS credentials in your gradle.properties")
}
Task signTask = graph.allTasks.find { t -> t.name.equalsIgnoreCase('signArchives') }
if (signTask != null && (!properties.containsKey('signing.keyId') || !properties.containsKey('signing.password') || !properties.containsKey('signing.secretKeyRingFile'))) {
throw new GradleException("You want to sign, but have not specified the required properties!")
}
}
}