1
+ import org.gradle.api.plugins.JavaPlugin.API_ELEMENTS_CONFIGURATION_NAME
2
+ import org.gradle.api.plugins.JavaPlugin.JAVADOC_ELEMENTS_CONFIGURATION_NAME
3
+ import org.gradle.api.plugins.JavaPlugin.RUNTIME_ELEMENTS_CONFIGURATION_NAME
4
+ import org.gradle.api.plugins.JavaPlugin.SOURCES_ELEMENTS_CONFIGURATION_NAME
5
+
1
6
plugins {
2
7
groovy
3
8
`java- gradle- plugin`
4
- id(" shadow.convention. publish" )
9
+ id(" com.vanniktech.maven. publish" ) version " 0.32.0 "
5
10
id(" com.diffplug.spotless" ) version " 7.0.4"
6
11
}
7
12
13
+ version = providers.gradleProperty(" VERSION_NAME" ).get()
14
+ group = providers.gradleProperty(" GROUP" ).get()
15
+ description = providers.gradleProperty(" POM_DESCRIPTION" ).get()
16
+
8
17
java {
9
18
sourceCompatibility = JavaVersion .VERSION_1_8
10
19
targetCompatibility = JavaVersion .VERSION_1_8
20
+ withSourcesJar()
21
+ withJavadocJar()
22
+ }
23
+
24
+ gradlePlugin {
25
+ website = providers.gradleProperty(" POM_URL" )
26
+ vcsUrl = providers.gradleProperty(" POM_URL" )
27
+
28
+ plugins {
29
+ create(" shadowPlugin" ) {
30
+ id = " com.gradleup.shadow"
31
+ implementationClass = " com.github.jengelman.gradle.plugins.shadow.ShadowPlugin"
32
+ displayName = providers.gradleProperty(" POM_NAME" ).get()
33
+ description = providers.gradleProperty(" POM_DESCRIPTION" ).get()
34
+ tags = listOf (" onejar" , " shade" , " fatjar" , " uberjar" )
35
+ }
36
+ }
11
37
}
12
38
13
39
spotless {
@@ -18,9 +44,37 @@ spotless {
18
44
}
19
45
}
20
46
21
- dependencies {
22
- compileOnly(localGroovy())
47
+ configurations.configureEach {
48
+ when (name) {
49
+ API_ELEMENTS_CONFIGURATION_NAME ,
50
+ RUNTIME_ELEMENTS_CONFIGURATION_NAME ,
51
+ JAVADOC_ELEMENTS_CONFIGURATION_NAME ,
52
+ SOURCES_ELEMENTS_CONFIGURATION_NAME ,
53
+ -> {
54
+ outgoing {
55
+ // Main/current capability.
56
+ capability(" com.gradleup.shadow:shadow-gradle-plugin:$version " )
57
+
58
+ // Historical capabilities.
59
+ capability(" io.github.goooler.shadow:shadow-gradle-plugin:$version " )
60
+ capability(" com.github.johnrengelman:shadow:$version " )
61
+ capability(" gradle.plugin.com.github.jengelman.gradle.plugins:shadow:$version " )
62
+ capability(" gradle.plugin.com.github.johnrengelman:shadow:$version " )
63
+ capability(" com.github.jengelman.gradle.plugins:shadow:$version " )
64
+ }
65
+ }
66
+ }
67
+ }
68
+
69
+ publishing.publications.withType<MavenPublication >().configureEach {
70
+ // We don't care about capabilities being unmappable to Maven.
71
+ suppressPomMetadataWarningsFor(API_ELEMENTS_CONFIGURATION_NAME )
72
+ suppressPomMetadataWarningsFor(RUNTIME_ELEMENTS_CONFIGURATION_NAME )
73
+ suppressPomMetadataWarningsFor(JAVADOC_ELEMENTS_CONFIGURATION_NAME )
74
+ suppressPomMetadataWarningsFor(SOURCES_ELEMENTS_CONFIGURATION_NAME )
75
+ }
23
76
77
+ dependencies {
24
78
implementation(" org.jdom:jdom2:2.0.6.1" )
25
79
implementation(" org.ow2.asm:asm-commons:9.8" )
26
80
implementation(" commons-io:commons-io:2.19.0" )
@@ -42,6 +96,16 @@ dependencies {
42
96
testImplementation(" org.junit.platform:junit-platform-suite-engine" )
43
97
}
44
98
99
+ tasks.withType<Javadoc >().configureEach {
100
+ (options as ? StandardJavadocDocletOptions )?.let {
101
+ it.links(
102
+ " https://docs.oracle.com/en/java/javase/17/docs/api/" ,
103
+ " https://docs.groovy-lang.org/2.4.7/html/gapi/" ,
104
+ )
105
+ it.addStringOption(" Xdoclint:none" , " -quiet" )
106
+ }
107
+ }
108
+
45
109
val isCI = providers.environmentVariable(" CI" ).isPresent
46
110
47
111
tasks.withType<Test >().configureEach {
0 commit comments