Tell IDEA to delegate through Gradle

This commit is contained in:
shedaniel
2021-01-26 09:18:44 +08:00
parent 41191d3681
commit 815b728306
3 changed files with 21 additions and 2 deletions

View File

@@ -30,6 +30,7 @@ repositories {
maven { url "https://maven.fabricmc.net/" }
maven { url "https://files.minecraftforge.net/maven/" }
maven { url "https://dl.bintray.com/shedaniel/cloth/" }
gradlePluginPortal()
}
apply plugin: 'java-gradle-plugin'
@@ -42,6 +43,7 @@ dependencies {
implementation gradleApi()
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72"
implementation "org.jetbrains.kotlin:kotlin-reflect:1.3.72"
implementation "gradle.plugin.org.jetbrains.gradle.plugin.idea-ext:gradle-idea-ext:0.10"
implementation "me.shedaniel:forgified-fabric-loom:$loom_version"
runtime "me.shedaniel:forgified-fabric-loom:$loom_version"
implementation "net.fabricmc:tiny-remapper:0.3.0.70"

View File

@@ -4,6 +4,9 @@ import me.shedaniel.architect.plugin.transformers.*
import net.fabricmc.loom.util.LoggerFilter
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.plugins.ExtensionAware
import org.gradle.plugins.ide.idea.model.IdeaModel
import org.jetbrains.gradle.ext.ActionDelegationConfig
import java.net.URI
class ArchitectPlugin : Plugin<Project> {
@@ -23,10 +26,21 @@ class ArchitectPlugin : Plugin<Project> {
mapOf(
"plugin" to "java",
"plugin" to "eclipse",
"plugin" to "idea"
"plugin" to "idea",
"plugin" to "org.jetbrains.gradle.plugin.idea-ext"
)
)
project.afterEvaluate {
val ideaModel = project.extensions.getByName("idea") as IdeaModel
val idea = ideaModel.project as? ExtensionAware
val settings = idea?.extensions?.getByName("settings") as? ExtensionAware
(settings?.extensions?.getByName("delegateActions") as? ActionDelegationConfig)?.apply {
delegateBuildRunToGradle = true
testRunner = ActionDelegationConfig.TestRunner.GRADLE
}
}
project.extensions.create("architectury", ArchitectPluginExtension::class.java, project)
project.tasks.register("transformProductionFabric", TransformingTask::class.java) {

View File

@@ -21,7 +21,6 @@ open class ArchitectPluginExtension(val project: Project) {
fun platformSetupLoomIde() {
val loomExtension = project.extensions.getByType(LoomGradleExtension::class.java)
loomExtension.autoGenIDERuns = true
loomExtension.addTaskBeforeRun("\$PROJECT_DIR\$/${project.name}:build")
}
fun common(forgeEnabled: Boolean) {
@@ -67,6 +66,8 @@ open class ArchitectPluginExtension(val project: Project) {
it.outputs.upToDateWhen { false }
} as TransformingTask
transformProductionFabricTask.dependsOn(transformDevelopmentFabricTask)
val remapJarTask = project.tasks.getByName("remapJar") {
it as RemapJarTask
@@ -103,6 +104,8 @@ open class ArchitectPluginExtension(val project: Project) {
it.outputs.upToDateWhen { false }
} as TransformingTask
transformProductionForgeTask.dependsOn(transformDevelopmentForgeTask)
transformProductionForgeTask.archiveFile.get().asFile.takeUnless { it.exists() }?.createEmptyJar()
transformDevelopmentForgeTask.archiveFile.get().asFile.takeUnless { it.exists() }?.createEmptyJar()