SleepyTrousers / EnderCore

Library mod used by EnderIO, EnderZoo, and others
Creative Commons Zero v1.0 Universal
50 stars 71 forks source link

Maven no longer work for 1.12.2? #114

Open LemADEC opened 4 years ago

LemADEC commented 4 years ago

Since a few days, I can no longer compile with dependencies on EnderCore with gradle as Maven can't find the deobf for EnderCore. Gradle 4.10.2 ForgeGradle 2.3

gradlew build

> Configure project :
This mapping 'stable_39' was designed for MC 1.12! Use at your own peril.

> Task :compileJava
...

> Task :extractRangemapReplacedMain
C:\_mcdev\_sandbox\_mods\Cyberware\build\sources\main\java

> Task :retromapReplacedMain
remapping source...

Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/4.10.2/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 36s
17 actionable tasks: 14 executed, 3 up-to-date
C:\_mcdev\_sandbox\_mods\Cyberware>gradlew build
Starting a Gradle Daemon, 4 incompatible Daemons could not be reused, use --status for details

> Configure project :
This mapping 'stable_39' was designed for MC 1.12! Use at your own peril.
#################################################
         ForgeGradle 2.3-SNAPSHOT-7764e3e
  https://github.com/MinecraftForge/ForgeGradle
#################################################
                 Powered by MCP
             http://modcoderpack.com
     by: Searge, ProfMobius, R4wk, ZeuX
     Fesh0r, IngisKahn, bspkrs, LexManos
#################################################

> Task :compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Could not resolve all files for configuration ':compileClasspath'.
> Could not find deobf.com.enderio.core:EnderCore:1.12.2-0.5.65.
  Searched in the following locations:
...
    - https://jitpack.io/deobf/com/enderio/core/EnderCore/1.12.2-0.5.65/EnderCore-1.12.2-0.5.65.pom
    - https://jitpack.io/deobf/com/enderio/core/EnderCore/1.12.2-0.5.65/EnderCore-1.12.2-0.5.65.jar
...
    - https://minecraft.curseforge.com/api/maven/deobf/com/enderio/core/EnderCore/1.12.2-0.5.65/EnderCore-1.12.2-0.5.65.pom
    - https://minecraft.curseforge.com/api/maven/deobf/com/enderio/core/EnderCore/1.12.2-0.5.65/EnderCore-1.12.2-0.5.65.jar
    - http://maven.tterrag.com/deobf/com/enderio/core/EnderCore/1.12.2-0.5.65/EnderCore-1.12.2-0.5.65.pom
    - http://maven.tterrag.com/deobf/com/enderio/core/EnderCore/1.12.2-0.5.65/EnderCore-1.12.2-0.5.65.jar
    - http://maven2.tterrag.com/deobf/com/enderio/core/EnderCore/1.12.2-0.5.65/EnderCore-1.12.2-0.5.65.pom
    - http://maven2.tterrag.com/deobf/com/enderio/core/EnderCore/1.12.2-0.5.65/EnderCore-1.12.2-0.5.65.jar
  Required by:
      project : > com.enderio:EnderIO:1.12.2-5.0.49

...

BUILD FAILED in 30s
5 actionable tasks: 4 executed, 1 up-to-date
HenryLoenwind commented 4 years ago

The "deobf." one is the one that setupDecompWorkspace creates. You need to run it again every time a "deobfCompile" dependency changes.

LemADEC commented 4 years ago

gradlew setupDecompWorkspace executes successfully, but the build still fails. I've tried the clean task and purging the temporary build folders, but it still fails to find those files.

LemADEC commented 4 years ago

I've found a workaround by removing the reference to EnderIO, then running setupDecompWorkspace to fill my local cache with EnderCore, then adding back the EnderIO reference, then running another setupDecompWorkspace , then I can build my project...

tterrag1098 commented 4 years ago

Depending on both EC and EIO should fix the problem. Set EIO to transitive = false too.

LemADEC commented 4 years ago

They were both declared as dependency, with EnderCore first, like so:

    provided "com.enderio.core:EnderCore:${mc_version}-${endercore_version}:core"
    provided "com.enderio:EnderIO:${mc_version}-${enderio_version}"
    provided "info.loenwind.autoconfig:AutoConfig:${mc_version}-1.0.2"
    //Given we are only compiling EnderCore we also need a reference to auto save
    provided "info.loenwind.autosave:AutoSave:${mc_version}-1.0.10"

It decided to go deobf for some reason, so I've changed it to deobCompile which fails without setting transitive to false on EnderIO. I've removed the apparently useless references to AutoConfig and AutoSave. This give this updated version which still works after clearing repository and gradle caches:

    deobfCompile "com.enderio.core:EnderCore:${mc_version}-${endercore_version}:core"
    deobfCompile("com.enderio:EnderIO:${mc_version}-${enderio_version}") {
        transitive = false
    }

Thanks for the help!