-
Notifications
You must be signed in to change notification settings - Fork 1
/
build.gradle.kts
113 lines (96 loc) · 3.36 KB
/
build.gradle.kts
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
plugins {
kotlin("jvm") version "1.4.20"
kotlin("kapt") version "1.4.20"
`java-library`
`maven-publish`
`signing`
id("io.codearte.nexus-staging") version "0.21.2"
id("de.marcphilipp.nexus-publish") version "0.4.0"
}
group = "io.johnsonlee.gradle"
version = "2.1.0"
repositories {
mavenLocal()
mavenCentral()
google()
jcenter()
}
dependencies {
implementation(gradleApi())
implementation(platform("org.jetbrains.kotlin:kotlin-bom"))
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
testImplementation("org.jetbrains.kotlin:kotlin-test")
testImplementation("org.jetbrains.kotlin:kotlin-test-junit")
}
val sourcesJar by tasks.registering(Jar::class) {
dependsOn(JavaPlugin.CLASSES_TASK_NAME)
classifier = "sources"
from(sourceSets.main.get().allSource)
}
val javadocJar by tasks.registering(Jar::class) {
dependsOn(JavaPlugin.JAVADOC_TASK_NAME)
classifier = "javadoc"
from(tasks["javadoc"])
}
val OSSRH_USERNAME = project.properties["OSSRH_USERNAME"]?.toString() ?: System.getenv("OSSRH_USERNAME")
val OSSRH_PASSWORD = project.properties["OSSRH_PASSWORD"]?.toString() ?: System.getenv("OSSRH_PASSWORD")
nexusStaging {
packageGroup = "io.johnsonlee"
username = OSSRH_USERNAME
password = OSSRH_PASSWORD
numberOfRetries = 50
delayBetweenRetriesInMillis = 3000
}
nexusPublishing {
repositories {
sonatype {
username.set(OSSRH_USERNAME)
password.set(OSSRH_PASSWORD)
}
}
}
publishing {
repositories {
maven {
url = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/")
}
}
publications {
register("mavenJava", MavenPublication::class) {
groupId = "${project.group}"
artifactId = project.name
version = "${project.version}"
from(components["java"])
artifact(sourcesJar.get())
artifact(javadocJar.get())
pom.withXml {
asNode().apply {
appendNode("name", project.name)
appendNode("url", "https://github.com/johnsonlee/${project.name}")
appendNode("description", project.description ?: project.name)
appendNode("scm").apply {
appendNode("connection", "scm:git:git://github.com/johnsonlee/${project.name}.git")
appendNode("developerConnection", "scm:git:git@github.com:johnsonlee/${project.name}.git")
appendNode("url", "https://github.com/johnsonlee/${project.name}")
}
appendNode("licenses").apply {
appendNode("license").apply {
appendNode("name", "GPL License")
appendNode("url", "https://www.gnu.org/licenses/gpl-3.0.txt")
}
}
appendNode("developers").apply {
appendNode("developer").apply {
appendNode("id", "johnsonlee")
appendNode("name", "Johnson Lee")
appendNode("email", "g.johnsonlee@gmail.com")
}
}
}
}
}
}
}
signing {
sign(publishing.publications["mavenJava"])
}