-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle.kts
92 lines (73 loc) · 2.8 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
import com.noheltcj.zinc.shared.build.loadStringProperty
plugins {
id("com.noheltcj.zinc.defaults")
}
buildscript {
dependencies {
classpath("com.noheltcj.zinc:gradle-plugin")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.21")
classpath("com.vanniktech:gradle-maven-publish-plugin:0.11.1")
classpath("org.jlleitschuh.gradle:ktlint-gradle:9.2.1")
}
}
val cleanGradlePlugin: Task by tasks.creating {
dependsOn(gradle.includedBuild("gradle-plugin").task(":clean"))
}
val clean: Task by tasks.getting {
dependsOn(cleanGradlePlugin)
}
val testGradlePlugin: Task by tasks.creating {
dependsOn(gradle.includedBuild("gradle-plugin").task(":test"))
}
val test: Task by tasks.getting {
// TODO: Re-enable once these tests are valuable
// dependsOn(testGradlePlugin)
}
val ktlintCheckGradlePlugin: Task by tasks.creating {
dependsOn(gradle.includedBuild("gradle-plugin").task(":ktlintCheck"))
}
val ktlintCheck: Task by tasks.getting {
dependsOn(ktlintCheckGradlePlugin)
}
val ktlintFormatGradlePlugin: Task by tasks.creating {
dependsOn(gradle.includedBuild("gradle-plugin").task(":ktlintFormat"))
}
val ktlintFormat: Task by tasks.getting {
dependsOn(ktlintFormatGradlePlugin)
}
val uploadGradlePluginArchives: Task by tasks.creating {
dependsOn(gradle.includedBuild("gradle-plugin").task(":uploadArchives"))
}
val uploadArchives: Task by tasks.getting {
dependsOn(uploadGradlePluginArchives)
}
subprojects {
apply(plugin = "com.noheltcj.zinc.defaults")
pluginManager.withPlugin(Dependencies.targets.jvm) {
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile::class).configureEach {
kotlinOptions {
jvmTarget = "1.8"
allWarningsAsErrors = true
}
}
}
pluginManager.withPlugin(Dependencies.plugins.mavenPublish) {
val mavenPublish = requireNotNull(extensions.findByType(com.vanniktech.maven.publish.MavenPublishPluginExtension::class))
mavenPublish.nexus {
groupId = loadStringProperty("releaseProfile")
}
val uploadArchivesTarget: com.vanniktech.maven.publish.MavenPublishTarget = requireNotNull(
mavenPublish.targets.findByName("uploadArchives")
)
uploadArchivesTarget.releaseRepositoryUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
uploadArchivesTarget.snapshotRepositoryUrl = "https://oss.sonatype.org/content/repositories/snapshots/"
}
configurations.all {
resolutionStrategy.dependencySubstitution {
substitute(module("com.noheltcj.zinc:core"))
.with(project(":core"))
substitute(module("com.noheltcj.zinc:compiler-plugin"))
.with(project(":compiler-plugin"))
}
}
}