-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathbuild.gradle.kts
More file actions
86 lines (69 loc) · 2.29 KB
/
build.gradle.kts
File metadata and controls
86 lines (69 loc) · 2.29 KB
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
import org.jetbrains.kotlin.gradle.plugin.extraProperties
group = "dev.luna5ama"
version = "1.2.2"
project.extraProperties.set("gradle.publish.key", project.property("luna5ama.gradle.publish.key"))
project.extraProperties.set("gradle.publish.secret", project.property("luna5ama.gradle.publish.secret"))
plugins {
`kotlin-dsl`
`maven-publish`
id("com.gradle.plugin-publish") version "1.3.1"
}
gradlePlugin {
website.set("https://github.com/Luna5ama/jar-optimizer")
vcsUrl.set("https://github.com/Luna5ama/jar-optimizer")
plugins {
create("jar-optimizer") {
id = "dev.luna5ama.jar-optimizer"
implementationClass = "dev.luna5ama.jaroptimizer.JarOptimizerPlugin"
displayName = "Jar Optimizer"
description = "Simple jar file optimizing tool"
tags.addAll("farjar", "shrink", "optimization", "jar", "java", "jvm")
}
}
}
repositories {
mavenCentral()
}
val library: Configuration by configurations.creating {
configurations.implementation.get().extendsFrom(this)
}
val pluginSourceSet = sourceSets.create("plugin").apply {
java.srcDir("src/plugin/kotlin")
resources.srcDir("src/plugin/resources")
compileClasspath += sourceSets.main.get().compileClasspath + sourceSets.main.get().output
runtimeClasspath += sourceSets.main.get().runtimeClasspath + sourceSets.main.get().output
}
dependencies {
library("it.unimi.dsi:fastutil:8.5.13")
library("org.apache.bcel:bcel:6.8.1")
library(kotlin("stdlib-jdk8"))
}
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(8))
}
withSourcesJar()
}
tasks {
jar {
from(pluginSourceSet.output)
}
named<Jar>("sourcesJar") {
from(pluginSourceSet.allSource)
}
val standaloneJar by register<Jar>("standaloneJar") {
group = "build"
manifest {
attributes(
"Main-Class" to "dev.luna5ama.jaroptimizer.JarOptimizer",
)
}
duplicatesStrategy = DuplicatesStrategy.INCLUDE
archiveClassifier.set("standalone")
from(sourceSets.main.get().output)
from(library.elements.map { set -> set.map { it.asFile }.map { if (it.isDirectory) it else zipTree(it) } })
}
artifacts {
archives(standaloneJar)
}
}