Skip to content

Commit b0dbdc3

Browse files
LexManosJonathing
andcommitted
Rename Project to 'Renamer' and add gradle plugin
Co-authored-by: Jonathing <me@jonathing.me>
1 parent d674eb8 commit b0dbdc3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+1340
-231
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: Publish Gradle Plugin
2+
3+
on:
4+
push:
5+
branches: [ 'master' ]
6+
paths:
7+
- 'renamer-gradle/**'
8+
- '!.github/workflows/**'
9+
- '!docs/**'
10+
- '!README.md'
11+
12+
permissions:
13+
contents: read
14+
15+
jobs:
16+
build:
17+
uses: MinecraftForge/SharedActions/.github/workflows/gradle.yml@v0
18+
with:
19+
java: 17
20+
gradle_tasks: ':renamer-gradle:check :renamer-gradle-demo:assemble :renamer-gradle:publish :renamer-gradle:publishPlugins'
21+
project_path: 'renamer-gradle'
22+
secrets:
23+
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
24+
MAVEN_USER: ${{ secrets.MAVEN_USER }}
25+
MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}
26+
PROMOTE_ARTIFACT_WEBHOOK: ${{ secrets.PROMOTE_ARTIFACT_WEBHOOK }}
27+
PROMOTE_ARTIFACT_USERNAME: ${{ secrets.PROMOTE_ARTIFACT_USERNAME }}
28+
PROMOTE_ARTIFACT_PASSWORD: ${{ secrets.PROMOTE_ARTIFACT_PASSWORD }}
29+
GRADLE_PUBLISH_KEY: ${{ secrets.GRADLE_PUBLISH_KEY }}
30+
GRADLE_PUBLISH_SECRET: ${{ secrets.GRADLE_PUBLISH_SECRET }}
31+
GRADLE_CACHE_KEY: ${{ secrets.GRADLE_CACHE_KEY }}

.github/workflows/publish.yml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@ name: Publish
33
on:
44
push:
55
branches: [ "master" ]
6+
paths-ignore:
7+
- 'renamer-gradle/**'
8+
- 'renamer-gradle-demo/**'
9+
- '.github/workflows/**'
10+
- 'docs/**'
11+
- 'README.md'
612

713
permissions:
814
contents: read
@@ -12,12 +18,13 @@ jobs:
1218
uses: MinecraftForge/SharedActions/.github/workflows/gradle.yml@main
1319
with:
1420
java: 17
15-
gradle_tasks: "publish"
16-
artifact_name: "ForgeAutoRenamingTool"
21+
gradle_tasks: "check publish"
22+
artifact_name: "renamer"
1723
secrets:
1824
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
1925
PROMOTE_ARTIFACT_WEBHOOK: ${{ secrets.PROMOTE_ARTIFACT_WEBHOOK }}
2026
PROMOTE_ARTIFACT_USERNAME: ${{ secrets.PROMOTE_ARTIFACT_USERNAME }}
2127
PROMOTE_ARTIFACT_PASSWORD: ${{ secrets.PROMOTE_ARTIFACT_PASSWORD }}
2228
MAVEN_USER: ${{ secrets.MAVEN_USER }}
2329
MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}
30+
GRADLE_CACHE_KEY: ${{ secrets.GRADLE_CACHE_KEY }}

.gitversion.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[gradlePlugin]
2+
path = "renamer-gradle"
3+
tag = "gradle"

LICENSE-header.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
Copyright (c) Forge Development LLC and contributors
1+
Copyright (c) Forge Development LLC
22
SPDX-License-Identifier: LGPL-2.1-only

build.gradle

Lines changed: 58 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,104 +1,87 @@
1+
import org.gradle.api.plugins.jvm.JvmTestSuite
12
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
23
import com.github.jengelman.gradle.plugins.shadow.transformers.PropertiesFileTransformer
34

45
plugins {
56
id 'java-library'
7+
id 'jvm-test-suite'
8+
id 'idea'
69
id 'eclipse'
710
id 'maven-publish'
8-
id 'com.github.johnrengelman.shadow' version '8.1.1'
9-
id 'net.minecraftforge.licenser' version '1.0.1'
10-
id 'net.minecraftforge.gradleutils' version '[2.3,2.4)'
11+
alias libs.plugins.gradleutils
12+
alias libs.plugins.gitversion
13+
alias libs.plugins.changelog
14+
alias libs.plugins.licenser
15+
alias libs.plugins.shadow
1116
}
1217

18+
gradleutils.displayName = 'Renamer'
19+
description = 'A command line tool to rename java class files'
1320
group = 'net.minecraftforge'
14-
version = gradleutils.getTagOffsetBranchVersion(null, 'master', 'HEAD')
21+
version = gitversion.tagOffset
22+
1523
println "Version: $version"
1624

1725
java {
18-
toolchain {
19-
languageVersion = JavaLanguageVersion.of(8)
20-
}
26+
toolchain.languageVersion = JavaLanguageVersion.of(8)
2127
withSourcesJar()
2228
}
2329

24-
repositories {
25-
mavenCentral()
26-
maven gradleutils.forgeMaven
27-
}
28-
29-
dependencies {
30-
implementation(libs.jopt.simple)
31-
api(libs.srgutils)
32-
implementation(libs.bundles.asm)
30+
testing {
31+
suites.named('test', JvmTestSuite) {
32+
useJUnitJupiter(libs.versions.junit)
3333

34-
testImplementation(libs.junit.api)
35-
testRuntimeOnly(libs.bundles.junit.runtime)
36-
testImplementation(libs.powermock)
34+
dependencies {
35+
implementation libs.junit.api
36+
runtimeOnly.bundle libs.bundles.junit.runtime
37+
implementation libs.powermock
38+
}
3739

38-
compileOnly(libs.nulls)
40+
targets.configureEach {
41+
testTask.configure {
42+
testLogging {
43+
events 'passed', 'skipped', 'failed'
44+
}
45+
}
46+
}
47+
}
3948
}
4049

41-
tasks.named('test', Test).configure {
42-
useJUnitPlatform()
43-
testLogging {
44-
events 'passed', 'skipped', 'failed'
45-
}
50+
dependencies {
51+
compileOnly libs.annotations.jetbrains
52+
53+
implementation libs.jopt
54+
api libs.srgutils
55+
implementation libs.bundles.asm
4656
}
4757

48-
tasks.named('jar', Jar).configure {
58+
tasks.named('jar', Jar) {
4959
manifest {
50-
attributes('Main-Class': 'net.minecraftforge.fart.Main')
60+
attributes('Main-Class': 'net.minecraftforge.renamer.Main')
5161
attributes([
52-
'Specification-Title': 'ForgeAutoRenamingTool',
53-
'Specification-Vendor': 'Forge Development LLC',
54-
'Specification-Version': gradleutils.gitInfo.tag,
55-
'Implementation-Title': 'ForgeAutoRenamingTool',
56-
'Implementation-Version': project.version,
57-
'Implementation-Vendor': 'Forge Development LLC'
62+
'Specification-Title' : 'Renamer',
63+
'Specification-Vendor' : gradleutils.vendor.get(),
64+
'Specification-Version' : gitversion.info.tag,
65+
'Implementation-Title' : 'Renamer',
66+
'Implementation-Version': project.version,
67+
'Implementation-Vendor' : gradleutils.vendor.get()
5868
], 'net/minecraftforge/fart/')
5969
}
6070
}
6171

62-
tasks.named('shadowJar', ShadowJar).configure {
63-
manifest {
64-
attributes('Main-Class': 'net.minecraftforge.fart.Main')
65-
attributes([
66-
'Specification-Title': 'ForgeAutoRenamingTool',
67-
'Specification-Vendor': 'Forge Development LLC',
68-
'Specification-Version': gradleutils.gitInfo.tag,
69-
'Implementation-Title': 'ForgeAutoRenamingTool',
70-
'Implementation-Version': project.version,
71-
'Implementation-Vendor': 'Forge Development LLC'
72-
], 'net/minecraftforge/fart/')
73-
}
72+
tasks.named('shadowJar', ShadowJar) {
73+
enableAutoRelocation = true
74+
relocationPrefix = 'net.minecraftforge.renamer.relocated'
7475

7576
minimize()
7677

77-
final List<String> relocations = [
78-
'org.objectweb.asm',
79-
'net.minecraftforge.srgutils',
80-
'joptsimple'
81-
]
82-
83-
relocations.each {
84-
relocate it, "net.minecraftforge.fart.relocated.$it"
85-
}
86-
8778
// Rewrite JOpt's message files, so that help text is displayed nicely.
8879
transform(PropertiesFileTransformer) {
89-
paths = [ 'Messages.properties$' ]
90-
keyTransformer = { key -> "net.minecraftforge.fart.relocated.$key".toString() }
80+
paths = ['Messages.properties$']
81+
keyTransformer = { key -> "net.minecraftforge.renamer.relocated.$key".toString() }
9182
}
9283
}
9384

94-
tasks.named('assemble').configure {
95-
dependsOn 'shadowJar'
96-
}
97-
98-
tasks.named('compileJava', JavaCompile).configure {
99-
options.encoding = 'UTF-8'
100-
}
101-
10285
changelog {
10386
from '0.1'
10487
}
@@ -110,25 +93,26 @@ license {
11093
}
11194

11295
publishing {
96+
repositories {
97+
maven gradleutils.publishingForgeMaven
98+
}
99+
113100
publications.register('mavenJava', MavenPublication) {
101+
suppressAllPomMetadataWarnings()
114102
from components.java
115103

116104
pom {
117-
name = 'Forge Auto Renaming Tool'
105+
name = 'Renamer'
118106
description = 'A tool that renames java bytecode elements.'
119-
url = 'https://github.com/MinecraftForge/ForgeAutoRenamingTool'
107+
url = 'https://github.com/MinecraftForge/renamer'
120108

121-
gradleutils.pom.setGitHubDetails(pom, 'ForgeAutoRenamingTool')
109+
gradleutils.pom.addRemoteDetails(pom)
122110

123-
license gradleutils.pom.Licenses.LGPLv2_1
111+
license gradleutils.pom.licenses.LGPLv2_1
124112

125113
developers {
126-
developer gradleutils.pom.Developers.LexManos
114+
developer gradleutils.pom.developers.LexManos
127115
}
128116
}
129117
}
130-
131-
repositories {
132-
maven gradleutils.publishingForgeMaven
133-
}
134118
}

build.properties

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
org.gradle.caching=true
2+
org.gradle.parallel=true
3+
org.gradle.configureondemand=true
4+
5+
org.gradle.configuration-cache=true
6+
org.gradle.configuration-cache.parallel=true
7+
org.gradle.configuration-cache.problems=warn
8+
9+
net.minecraftforge.gradleutils.ide.automatic.sources=true
10+
net.minecraftforge.gradleutils.compilation.defaults=true

gradle/wrapper/gradle-wrapper.jar

-17.8 KB
Binary file not shown.

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.0-rc-2-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

gradlew

Lines changed: 7 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)