Skip to content

Commit 28d47c6

Browse files
committed
Redesign API to be more like JarJar
1 parent 17613ca commit 28d47c6

21 files changed

+320
-427
lines changed

at-gradle-demo/build.gradle

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,11 @@ plugins {
55

66
java.toolchain.languageVersion = JavaLanguageVersion.of(17)
77

8-
accessTransformers.register {
9-
logLevel = LogLevel.LIFECYCLE
10-
config = project.file('accesstransformer.cfg')
11-
}
12-
138
dependencies {
14-
implementation accessTransformers.dep(libs.coremods)
9+
implementation(libs.coremods) {
10+
accessTransformers.configure(it) {
11+
config = project.file('accesstransformer.cfg')
12+
}
13+
}
1514
compileOnly libs.log4j.api
1615
}

at-gradle-demo/gradle.properties

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
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.compilation.defaults=true

at-gradle-demo/settings.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@ pluginManagement {
22
includeBuild '../at-gradle'
33

44
repositories {
5-
//mavenLocal()
65
mavenCentral()
76
gradlePluginPortal()
87
maven { url = 'https://maven.minecraftforge.net' }
8+
//mavenLocal()
99
}
1010
}
1111

1212
plugins {
1313
id 'org.gradle.toolchains.foojay-resolver-convention' version '1.0.0'
14-
id 'net.minecraftforge.gradleutils' version '3.2.6'
14+
id 'net.minecraftforge.gradleutils' version '3.3.11'
1515
}
1616

1717
rootProject.name = 'at-gradle-demo'

at-gradle/build.gradle

Lines changed: 5 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ plugins {
77
id 'idea'
88
id 'eclipse'
99
id 'maven-publish'
10-
id 'io.freefair.javadoc-links'
10+
//id 'io.freefair.javadoc-links'
1111
id 'net.minecraftforge.gradleutils'
1212
alias libs.plugins.gitversion
1313
alias libs.plugins.changelog
@@ -16,32 +16,19 @@ plugins {
1616
alias libs.plugins.shadow
1717
}
1818

19-
final projectDisplayName = 'AccessTransformers Gradle Plugin'
19+
gradleutils.displayName = 'AccessTransformers Gradle Plugin'
2020
description = 'Enables Gradle projects to use AccessTransformers on dependencies with minimal hassle.'
2121
base.archivesName = 'accesstransformers-gradle'
2222
group = 'net.minecraftforge'
2323
version = gitversion.tagOffset
2424

25-
println "Version: $version"
26-
2725
java {
2826
toolchain.languageVersion = JavaLanguageVersion.of(17)
2927
withSourcesJar()
3028
withJavadocJar()
3129
}
3230

33-
configurations {
34-
// Applies the "Gradle Plugin API Version" attribute to configuration
35-
// This was added in Gradle 7, gives consumers useful errors if they are on an old version
36-
def applyGradleVersionAttribute = { Configuration configuration ->
37-
configuration.attributes {
38-
attribute(GradlePluginApiVersion.GRADLE_PLUGIN_API_VERSION_ATTRIBUTE, objects.named(GradlePluginApiVersion, libs.versions.gradle.get()))
39-
}
40-
}
41-
42-
named(JavaPlugin.RUNTIME_ELEMENTS_CONFIGURATION_NAME, applyGradleVersionAttribute)
43-
named(ShadowJavaPlugin.SHADOW_RUNTIME_ELEMENTS_CONFIGURATION_NAME, applyGradleVersionAttribute)
44-
}
31+
gradleutils.pluginDevDefaults(configurations, libs.versions.gradle)
4532

4633
dependencies {
4734
// Static Analysis
@@ -57,15 +44,6 @@ dependencies {
5744
implementation libs.bundles.utils
5845
}
5946

60-
// Removes local Gradle API from compileOnly. This is a workaround for bugged plugins.
61-
// Publish Plugin: https://github.com/gradle/plugin-portal-requests/issues/260
62-
// Shadow: https://github.com/GradleUp/shadow/pull/1422
63-
afterEvaluate { project ->
64-
project.configurations.named(JavaPlugin.COMPILE_ONLY_CONFIGURATION_NAME) { compileOnly ->
65-
compileOnly.dependencies.remove(project.dependencies.gradleApi())
66-
}
67-
}
68-
6947
license {
7048
header = rootProject.file('../LICENSE-header.txt')
7149
newLine = false
@@ -84,11 +62,6 @@ tasks.named('shadowJar', ShadowJar) {
8462

8563
tasks.withType(Javadoc).configureEach {
8664
javadocTool = javaToolchains.javadocToolFor { languageVersion = JavaLanguageVersion.of(24) }
87-
88-
options { StandardJavadocDocletOptions options ->
89-
options.windowTitle = projectDisplayName + project.version
90-
options.tags 'apiNote:a:API Note:', 'implNote:a:Implementation Note:', 'implSpec:a:Implementation Requirements:'
91-
}
9265
}
9366

9467
changelog {
@@ -102,7 +75,7 @@ gradlePlugin {
10275
plugins.register('accesstransformers') {
10376
id = 'net.minecraftforge.accesstransformers'
10477
implementationClass = 'net.minecraftforge.accesstransformers.gradle.AccessTransformersPlugin'
105-
displayName = projectDisplayName
78+
displayName = gradleutils.displayName
10679
description = project.description
10780
tags = ['minecraftforge']
10881
}
@@ -118,7 +91,7 @@ publishing {
11891
gradleutils.promote(it)
11992

12093
pom { pom ->
121-
name = projectDisplayName
94+
name = gradleutils.displayName
12295
description = project.description
12396

12497
gradleutils.pom.addRemoteDetails(pom)
@@ -133,6 +106,3 @@ publishing {
133106
}
134107
}
135108
}
136-
137-
idea.module { downloadSources = downloadJavadoc = true }
138-
eclipse.classpath { downloadSources = downloadJavadoc = true }

at-gradle/gradle.properties

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,9 @@ org.gradle.configuration-cache.parallel=true
77
org.gradle.configuration-cache.problems=warn
88

99
systemProp.org.gradle.unsafe.suppress-gradle-api=true
10+
11+
net.minecraftforge.gradleutils.publishing.use-base-archives-name=true
12+
net.minecraftforge.gradleutils.ide.automatic.sources=true
13+
net.minecraftforge.gradleutils.compilation.defaults=true
14+
15+
net.minecraftforge.gitversion.log.version=true

at-gradle/settings.gradle

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,24 @@ plugins {
44
// NOTE: We need to load this into the classpath before GradleUtils for the service to load correctly
55
id 'io.freefair.javadoc-links' version '8.14' apply false // https://plugins.gradle.org/plugin/io.freefair.javadoc-links
66

7-
id 'net.minecraftforge.gradleutils' version '3.2.6' // https://plugins.gradle.org/plugin/net.minecraftforge.gradleutils
7+
id 'net.minecraftforge.gradleutils' version '3.3.11' // https://plugins.gradle.org/plugin/net.minecraftforge.gradleutils
88
}
99

1010
rootProject.name = 'at-gradle'
1111

1212
dependencyResolutionManagement {
1313
repositories {
14-
//mavenLocal()
1514
mavenCentral()
1615
maven gradleutils.forgeMaven
1716
maven { url = 'https://maven.moddinglegacy.com/maven' } // Gradle API
17+
//mavenLocal()
1818
}
1919

2020
//@formatter:off
2121
versionCatalogs.register('libs') {
2222
plugin 'licenser', 'net.minecraftforge.licenser' version '1.2.0' // https://plugins.gradle.org/plugin/net.minecraftforge.licenser
23-
plugin 'gitversion', 'net.minecraftforge.gitversion' version '3.0.3' // https://plugins.gradle.org/plugin/net.minecraftforge.changelog
24-
plugin 'changelog', 'net.minecraftforge.changelog' version '3.0.3' // https://plugins.gradle.org/plugin/net.minecraftforge.changelog
23+
plugin 'gitversion', 'net.minecraftforge.gitversion' version '3.1.0' // https://plugins.gradle.org/plugin/net.minecraftforge.changelog
24+
plugin 'changelog', 'net.minecraftforge.changelog' version '3.1.1' // https://plugins.gradle.org/plugin/net.minecraftforge.changelog
2525
plugin 'plugin-publish', 'com.gradle.plugin-publish' version '1.3.1' // https://plugins.gradle.org/plugin/com.gradle.plugin-publish
2626
plugin 'shadow', 'com.gradleup.shadow' version '9.0.2' // https://plugins.gradle.org/plugin/com.gradleup.shadow
2727

@@ -35,7 +35,7 @@ dependencyResolutionManagement {
3535
library 'gradle', 'name.remal.gradle-api', 'gradle-api' versionRef 'gradle'
3636

3737
// GradleUtils Shared Base
38-
library 'gradleutils-shared', 'net.minecraftforge', 'gradleutils-shared' version '3.2.6'
38+
library 'gradleutils-shared', 'net.minecraftforge', 'gradleutils-shared' version '3.3.11'
3939

4040
// Utils
4141
library 'utils-hash', 'net.minecraftforge', 'hash-utils' version '0.1.9'
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/*
2+
* Copyright (c) Forge Development LLC
3+
* SPDX-License-Identifier: LGPL-2.1-only
4+
*/
5+
package net.minecraftforge.accesstransformers.gradle;
6+
7+
import org.gradle.api.file.RegularFileProperty;
8+
9+
/// Configuration for individual dependencies to be run through AccessTransformers.
10+
public sealed interface AccessTransformersConfiguration permits AccessTransformersContainer.Options, AccessTransformersConfigurationInternal {
11+
/// Gets the AccessTransformer configuration to use.
12+
///
13+
/// @return The property for the configuration
14+
RegularFileProperty getConfig();
15+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/*
2+
* Copyright (c) Forge Development LLC
3+
* SPDX-License-Identifier: LGPL-2.1-only
4+
*/
5+
package net.minecraftforge.accesstransformers.gradle;
6+
7+
import org.gradle.api.file.RegularFileProperty;
8+
9+
record AccessTransformersConfigurationImpl(
10+
RegularFileProperty getConfig,
11+
AccessTransformersContainerImpl.OptionsImpl options
12+
) implements AccessTransformersConfigurationInternal { }
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/*
2+
* Copyright (c) Forge Development LLC
3+
* SPDX-License-Identifier: LGPL-2.1-only
4+
*/
5+
package net.minecraftforge.accesstransformers.gradle;
6+
7+
import org.gradle.api.reflect.HasPublicType;
8+
import org.gradle.api.reflect.TypeOf;
9+
10+
non-sealed interface AccessTransformersConfigurationInternal extends AccessTransformersConfiguration, HasPublicType {
11+
@Override
12+
default TypeOf<?> getPublicType() {
13+
return TypeOf.typeOf(AccessTransformersConfiguration.class);
14+
}
15+
}

0 commit comments

Comments
 (0)