1
1
import com.saveourtool.diktat.buildutils.configurePublications
2
2
import com.saveourtool.diktat.buildutils.configurePublishing
3
- import com.github.jengelman.gradle.plugins.shadow.ShadowExtension
4
- import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
5
3
6
4
@Suppress(" DSL_SCOPE_VIOLATION" , " RUN_IN_SCRIPT" ) // https://github.com/gradle/gradle/issues/22797
7
5
plugins {
@@ -19,23 +17,31 @@ dependencies {
19
17
implementation(projects.diktatRules)
20
18
}
21
19
22
- tasks.named< ShadowJar >( " shadowJar" ) {
20
+ tasks.shadowJar {
23
21
archiveClassifier.set(" shadow" )
24
22
duplicatesStrategy = DuplicatesStrategy .FAIL
25
23
}
26
24
25
+ // https://github.com/gradle/gradle/issues/10384#issuecomment-1279708395
26
+ val shadowElement: Configuration by configurations.creating {
27
+ isCanBeConsumed = true
28
+ isCanBeResolved = false
29
+ attributes {
30
+ attribute(Category .CATEGORY_ATTRIBUTE , objects.named(Category .LIBRARY ))
31
+ attribute(Usage .USAGE_ATTRIBUTE , objects.named(Usage .JAVA_RUNTIME ))
32
+ attribute(Bundling .BUNDLING_ATTRIBUTE , objects.named(Bundling .SHADOWED ))
33
+ }
34
+ outgoing.artifact(tasks.shadowJar)
35
+ }
36
+ components.named<AdhocComponentWithVariants >(" java" ).configure {
37
+ addVariantsFromConfiguration(shadowElement) {}
38
+ }
39
+
27
40
publishing {
28
41
publications {
29
42
create<MavenPublication >(" maven" ) {
30
43
from(components[" java" ])
31
44
}
32
- // it creates a publication for shadowJar
33
- create<MavenPublication >(" shadow" ) {
34
- // https://github.com/johnrengelman/shadow/issues/417#issuecomment-830668442
35
- project.extensions.configure<ShadowExtension > {
36
- component(this @create)
37
- }
38
- }
39
45
}
40
46
}
41
47
configurePublications()
0 commit comments