lukflug / PanelStudio

An extensible and customizable GUI API/library to create ClickGUIs, HUDEditors and TabGUIs designed for use in Minecraft utility mods.
https://lukflug.github.io/panelstudio.html
MIT License
309 stars 23 forks source link

"Could not find shadowJar()"? #14

Closed Whop42 closed 3 years ago

Whop42 commented 3 years ago

I have hardly any experience with gradle, and this is probably a mistake on my end. This is my build.gradle:

plugins {
    id 'fabric-loom' version '0.5-SNAPSHOT'
    id 'maven-publish'
}

sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8

archivesBaseName = project.archives_base_name
version = project.mod_version
group = project.maven_group

repositories {
    // Add repositories to retrieve artifacts from in here.
    // You should only use this when depending on other mods because
    // Loom adds the essential maven repositories to download Minecraft and libraries from automatically.
    // See https://docs.gradle.org/current/userguide/declaring_repositories.html
    // for more information about repositories.
    maven {
        name = 'lukflug'
        url = 'https://lukflug.github.io/maven'
    }
}

dependencies {
    // To change the versions see the gradle.properties file
    minecraft "com.mojang:minecraft:${project.minecraft_version}"
    mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
    modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"

    // Fabric API. This is technically optional, but you probably want it anyway.
    modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"

    //Lukflug's PanelStudio
    compile('com.lukflug:panelstudio:0.1.8')
    modCompile('com.lukflug:panelstudio-mc16:0.1.9')

    // PSA: Some older mods, compiled on Loom 0.2.1, might have outdated Maven POMs.
    // You may need to force-disable transitiveness on them.
}

//Lukflug's PanelStudio
shadowJar {
    dependencies {
        include(dependency('com.lukflug:panelstudio'))
        include(dependency('com.lukflug:panelstudio-mc16'))
    }
}

processResources {
    inputs.property "version", project.version

    filesMatching("fabric.mod.json") {
        expand "version": project.version
    }
}

tasks.withType(JavaCompile).configureEach {
    // ensure that the encoding is set to UTF-8, no matter what the system default is
    // this fixes some edge cases with special characters not displaying correctly
    // see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
    // If Javadoc is generated, this must be specified in that task too.
    it.options.encoding = "UTF-8"

    // The Minecraft launcher currently installs Java 8 for users, so your mod probably wants to target Java 8 too
    // JDK 9 introduced a new way of specifying this that will make sure no newer classes or methods are used.
    // We'll use that if it's available, but otherwise we'll use the older option.
    def targetVersion = 8
    if (JavaVersion.current().isJava9Compatible()) {
         it.options.release = targetVersion
    }
}

java {
    // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
    // if it is present.
    // If you remove this line, sources will not be generated.
    withSourcesJar()
}

jar {
    from("LICENSE") {
        rename { "${it}_${project.archivesBaseName}"}
    }
}

// configure the maven publication
publishing {
    publications {
        mavenJava(MavenPublication) {
            // add all the jars that should be included when publishing to maven
            artifact(remapJar) {
                builtBy remapJar
            }
            artifact(sourcesJar) {
                builtBy remapSourcesJar
            }
        }
    }

    // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing.
    repositories {
        // Add repositories to publish to here.
        // Notice: This block does NOT have the same function as the block in the top level.
        // The repositories here will be used for publishing your artifact, not for
        // retrieving dependencies.
    }
}

and here is the error it shows: > Could not find method shadowJar() for arguments [build_grs068kl74kuz0pe0gryllew$_run_closure3@3f067d47] on root project 'DentClient' of type org.gradle.api.Project.

How do I fix this?

ChompChompDead commented 3 years ago

Remove the shadowJar part or add it.

ChompChompDead commented 3 years ago

Actually just remove shadowJar since you don't have the plugin installed

Whop42 commented 3 years ago

Thanks, I'm pretty sure that worked!

Is there a reason to have the shadowJar() method?

Whop42 commented 3 years ago

Wait no, it doesn't work. The build.gradle compiles but the actual implementation doesn't work (or build.)

ChompChompDead commented 3 years ago

Shadowjar is like another extension for depedencies/gradle plugins, im not sure lol. U can try installing shadowjar or refreshing the project by closing and opening it.

lukflug commented 3 years ago

Was the orginal issue already resolved, if yes please send the full log for the second error, if not, you need to add this inside the dependencies block inside your buildscript block in build.gradle:

classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.3'

Also add this below your buildscript block:

apply plugin: 'com.github.johnrengelman.shadow'
lukflug commented 3 years ago

No response, assuming user error was solved.