11import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
22
3+ import java.nio.file.Files
4+ import java.nio.file.Paths
5+
36plugins {
47 id ' java'
58 id ' eclipse'
69 id ' maven-publish'
7- id ' com.github.johnrengelman.shadow' version ' 8.1.1'
8- id ' com.github.ben-manes.versions' version ' 0.49.0'
9- id ' net.minecraftforge.licenser' version ' 1.0.1'
10- id ' net.minecraftforge.gradleutils' version ' [2.3,2.4)'
10+ id ' com.gradleup.shadow' version ' 9.4.1'
11+ id ' net.minecraftforge.gitversion' version ' 3.1.7'
12+ id ' net.minecraftforge.licenser' version ' 1.2.0'
13+ id ' net.minecraftforge.gradleutils' version ' 3.4.4'
14+ id ' net.minecraftforge.changelog' version ' 3.2.1'
1115}
1216
17+ gradleutils. displayName = ' Installer'
1318group = ' net.minecraftforge'
14- version = gradleutils . tagOffsetVersion
19+ version = gitversion . tagOffset
1520println " Version: $version "
1621
1722repositories {
@@ -25,9 +30,7 @@ license {
2530}
2631
2732java {
28- toolchain {
29- languageVersion = JavaLanguageVersion . of(8 )
30- }
33+ toolchain. languageVersion = JavaLanguageVersion . of(8 )
3134 withSourcesJar()
3235}
3336
@@ -42,34 +45,36 @@ dependencies {
4245 testRuntimeOnly(libs. bundles. junit. runtime)
4346}
4447
45-
46- def installerFiles = new FileNameFinder (). getFileNames(projectDir. absolutePath, ' *-installer.jar' )
47- if (! installerFiles. isEmpty()) {
48- def first = file(installerFiles. get(0 ))
49- logger. lifecycle(" Detected test installer: " + first. name)
50- dependencies. implementation(files(first))
51- }
52-
53- tasks. named(' jar' , Jar ). configure {
48+ Files . list(Paths . get(projectDir. absolutePath))
49+ .filter(Files ::isRegularFile)
50+ .filter(path -> path. getFileName(). toString(). endsWith(' -installer.jar' ))
51+ .findFirst()
52+ .ifPresent(path -> {
53+ var firstFile = path. toFile()
54+ logger. lifecycle(" Detected test installer: ${ firstFile.name} " )
55+ dependencies. implementation(files(firstFile))
56+ })
57+
58+ tasks. named(' jar' , Jar ) {
5459 manifest {
5560 attributes(' Main-Class' : ' net.minecraftforge.installer.SimpleInstaller' )
5661 attributes([
5762 ' Specification-Title' : ' Installer' ,
5863 ' Specification-Vendor' : ' Forge Development LLC' ,
59- ' Specification-Version' : gradleutils . gitInfo . tag,
64+ ' Specification-Version' : gitversion . info . tag,
6065 ' Implementation-Title' : ' SimpleInstaller' ,
6166 ' Implementation-Vendor' : ' Forge Development LLC' ,
6267 ' Implementation-Version' : project. version
6368 ] as LinkedHashMap , ' net/minecraftforge/installer/' )
6469 }
6570}
6671
67- tasks. named(' shadowJar' , ShadowJar ). configure {
72+ tasks. named(' shadowJar' , ShadowJar ) {
6873 archiveClassifier = ' fatjar'
6974 minimize()
7075}
7176
72- compileJava {
77+ tasks . withType( JavaCompile ) . configureEach {
7378 options. encoding = ' UTF-8'
7479}
7580
@@ -83,6 +88,9 @@ changelog {
8388
8489publishing {
8590 publications. register(' mavenJava' , MavenPublication ) {
91+ changelog. publish(it)
92+ gradleutils. promote(it)
93+
8694 from components. java
8795
8896 artifactId = ' installer'
@@ -92,12 +100,12 @@ publishing {
92100 description = ' Minecraft Forge Installer'
93101 url = ' https://github.com/MinecraftForge/Installer'
94102
95- gradleutils. pom. setGitHubDetails (pom, ' Installer ' )
103+ gradleutils. pom. addRemoteDetails (pom)
96104
97105 license gradleutils.pom.licenses.LGPLv2_1
98106
99107 developers {
100- developer gradleutils.pom.Developers .LexManos
108+ developer gradleutils.pom.developers .LexManos
101109 }
102110 }
103111 }
0 commit comments