1- import org.gradle.util.GradleVersion
21import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
3- import io.freefair.gradle.plugins.maven.javadoc.JavadocLinkUtil
2+ import com.github.jengelman.gradle.plugins.shadow.ShadowJavaPlugin
3+ import org.gradle.api.attributes.plugin.GradlePluginApiVersion
44
55plugins {
6- id ' dev.gradleplugins. java-gradle-plugin'
6+ id ' java-gradle-plugin'
77 id ' idea'
88 id ' eclipse'
99 id ' maven-publish'
10+ id ' io.freefair.javadoc-links'
11+ id ' net.minecraftforge.gradleutils'
12+ alias libs. plugins. gitversion
13+ alias libs. plugins. changelog
1014 alias libs. plugins. licenser
11- alias libs. plugins. gradleutils
12- alias libs. plugins. javadoc. links
1315 alias libs. plugins. plugin. publish
1416 alias libs. plugins. shadow
1517}
1618
17- final rootBuild = gradle. includedBuild(' AccessTransformers' )
18-
1919final projectDisplayName = ' AccessTransformers Gradle Plugin'
20- final projectArtifactId = base. archivesName = ' accesstransformers-gradle'
2120description = ' Enables Gradle projects to use AccessTransformers on dependencies with minimal hassle.'
21+ base. archivesName = ' accesstransformers-gradle'
2222group = ' net.minecraftforge'
2323version = gitversion. tagOffset
2424
2525println " Version: $version "
2626
27- java. toolchain. languageVersion = JavaLanguageVersion . of 8
27+ java {
28+ toolchain. languageVersion = JavaLanguageVersion . of(17 )
29+ withSourcesJar()
30+ withJavadocJar()
31+ }
2832
29- repositories {
30- maven { url = ' https://maven.minecraftforge.net' }
31- mavenCentral()
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)
3244}
3345
3446dependencies {
35- // Utils
36- implementation libs. bundles. utils
37-
3847 // Static Analysis
3948 compileOnly libs. nulls
49+
50+ // Gradle API
51+ compileOnly libs. gradle
52+
53+ // GradleUtils Shared Base
54+ implementation libs. gradleutils. shared
55+
56+ // Utils
57+ implementation libs. bundles. utils
4058}
4159
4260// Removes local Gradle API from compileOnly. This is a workaround for bugged plugins.
43- // TODO [GradleUtils][GradleAPI] Remove this once they are fixed.
4461// Publish Plugin: https://github.com/gradle/plugin-portal-requests/issues/260
4562// Shadow: https://github.com/GradleUp/shadow/pull/1422
4663afterEvaluate { project ->
4764 project. configurations. named(JavaPlugin . COMPILE_ONLY_CONFIGURATION_NAME ) { compileOnly ->
48- compileOnly. dependencies. remove project. dependencies. gradleApi()
65+ compileOnly. dependencies. remove( project. dependencies. gradleApi() )
4966 }
5067}
5168
5269license {
53- header = new File (rootBuild . projectDir, ' /LICENSE-header.txt' )
70+ header = rootProject . file( ' .. /LICENSE-header.txt' )
5471 newLine = false
5572 exclude ' **/*.properties'
5673}
@@ -60,42 +77,27 @@ tasks.named('jar', Jar) {
6077}
6178
6279tasks. named(' shadowJar' , ShadowJar ) {
63- enableRelocation = true
80+ enableAutoRelocation = true
6481 archiveClassifier = null
6582 relocationPrefix = ' net.minecraftforge.accesstransformers.gradle.shadow'
6683}
6784
6885tasks. withType(Javadoc ). configureEach {
69- javadocTool = javaToolchains. javadocToolFor { languageVersion = JavaLanguageVersion . of 23 }
86+ javadocTool = javaToolchains. javadocToolFor { languageVersion = JavaLanguageVersion . of( 24 ) }
7087
7188 options { StandardJavadocDocletOptions options ->
72- options. links(
73- // Manually included here, since the one at javadoc.io is ass
74- JavadocLinkUtil . getGradleApiLink(GradleVersion . version(libs. versions. gradle. get()))
75- )
76-
7789 options. windowTitle = projectDisplayName + project. version
78- options. tags ' apiNote:a:API Note:' , ' implNote:a:Implementation Note:'
90+ options. tags ' apiNote:a:API Note:' , ' implNote:a:Implementation Note:' , ' implSpec:a:Implementation Requirements: '
7991 }
8092}
8193
8294changelog {
8395 fromBase()
84- publishAll = false
8596}
8697
8798gradlePlugin {
88- website. set gitversion. url
89- vcsUrl. set gitversion. url + ' .git'
90-
91- compatibility {
92- minimumGradleVersion = libs. versions. gradle. get()
93- }
94-
95- java {
96- withSourcesJar()
97- withJavadocJar()
98- }
99+ website = gitversion. url
100+ vcsUrl = gitversion. url + ' .git'
99101
100102 plugins. register(' accesstransformers' ) {
101103 id = ' net.minecraftforge.accesstransformers'
@@ -107,16 +109,19 @@ gradlePlugin {
107109}
108110
109111publishing {
110- publications. register(' pluginMaven' , MavenPublication ) {
111- artifactId = projectArtifactId
112+ repositories {
113+ maven gradleutils. getPublishingForgeMaven(rootProject. file(' ../repo' ))
114+ }
112115
113- changelog. publish it
116+ publications. register(' pluginMaven' , MavenPublication ) {
117+ changelog. publish(it)
118+ gradleutils. promote(it)
114119
115120 pom { pom ->
116121 name = projectDisplayName
117122 description = project. description
118123
119- gradleutils. pom. setGitHubDetails pom
124+ gradleutils. pom. addRemoteDetails( pom)
120125
121126 licenses {
122127 license gradleutils.pom.licenses.LGPLv2_1
@@ -127,10 +132,7 @@ publishing {
127132 }
128133 }
129134 }
130-
131- repositories {
132- maven gradleutils. getPublishingForgeMaven(new File (rootBuild. projectDir, ' repo' ))
133- }
134135}
135136
136137idea. module { downloadSources = downloadJavadoc = true }
138+ eclipse. classpath { downloadSources = downloadJavadoc = true }
0 commit comments