DCEVM, KTS Build Scripts, Newer ForgeGradle and full Intellij IDEA Integration

Good afternoon, as a question to any devs currently working on GT6: Do you bunch have interest in DCEVM and KTS Build Scripts? I’m offering to pop over for a bit, get it working and bring over my guides to help speed up dev time if there is interest.

As an example project I have this: https://github.com/basdxz/Forge-MDK
And as working example of the KTS scripts I give you: https://github.com/Technus/TecTech

With DCEVM http://dcevm.github.io/ you can get extended hotswapping support. Which enables swapping out entire methods or modifying class hierarchy during runtime.

KTS or Kotlin script is a replacement for Gradle’s barley readable Groovy script, which is by far more readable and maintainable than Groovy is.

And with a Newer ForgeGradle Gradle plugin you can update the version of the Gradle build system up to
5.6.4 which will work in the latest version of Intellij as a Gradle plugin. Leading to a more integrated build environment.

Thank you very much for your time and thank you for your wonderful work with the mod, I wish you well friends.

2 Likes

We already use GitHub Actions to automatically build GT6. But maybe @OvermindDL1 will understand more.

1 Like

DCEVM looks like it works on hotspot and such only, not alternatives (like I and many others run) so that wouldn’t be very user friendly, and for dev time intellij/eclipse can already swap out if signatures remain the same.

And yes, I like kotlin scripts, but greg doesn’t want to learn another language even if in build files he rarely touches, lol, also we are stuck on Gradle 3.5 because of plugin compat, though that is mostly because of ForgeGradle, is there a ForgeGradle1.2 that’s built for newer gradles?

In your linked GitHub - Technus/TecTech: GT5u nuclear and quantum physics addon project, just as a note, doesn’t compile due to a few issues:

First ./gradlew isn’t executable, that’s weird…

Second, well, it just doesn’t compile at all, it doesn’t even start:

$ ./gradlew assemble

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'TecTech'.
> Could not resolve all artifacts for configuration ':classpath'.
   > Could not find org.eclipse.jdt.core.jar (org.eclipse.jdt:org.eclipse.jdt.core:3.10.0.v20131029-1755).
     Searched in the following locations:
         http://files.minecraftforge.net/maven/org/eclipse/jdt/org.eclipse.jdt.core/3.10.0.v20131029-1755/org.eclipse.jdt.core-3.10.0.v20131029-1755.jar

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 547ms

So unsure of it being the best example? ^.^;

For note, FG1.2 ‘does’ work on newer gradle’s to some extent, except it has bugs that can crop up at really annoying times, 3.5 was the latest stable one I was able to test with. I should probably get around to fixing FG sometime honestly…

1 Like

DCEVM is not a tool that every dev of a project must have, it also has the disadvantage of running needing Java update 181 to run. I have been using it with the Oracle JDK with no issue, using the latest OpenJDK for Java 8 compile when distributing with no issues so far. And Intellij can’t swap out all signatures, changing some things like class names or moving around methods will stop Intellij/Eclipse from reloading.

As for ForgeGradle, we use: github.com GTNH2 ForgeGradle
With Jitpack to build it: jitpack io #GTNH2 ForgeGradle if you’d like to try it with a newer gradle.

And as for learning another language that’s fair, just another of many suggestions I have from my side of development.

Lastly for TecTech, this feels like a case of “works on my machine”. As I just checked, and it builds just fine in my Intellij using both the build task (what I use normally) and assemble. And it does work under Linux as can be seen from the Jenkins: jenkins usrv eu:8080 job Tec%20Tech 666 console

Anyway, thank you for your quick responses and wishing you both the best. Thank you for your good work I hope my feedback finds you well.

2 Likes

Removed the . and / from my links, not sure why it let me post them the first but not second time.

2 Likes

Clear your .gradle system cache and try again. It’s not using GTNH2’s repository, it’s using normal forge, and they broke their server last year, I’m guessing your cache predates that so you are just using your cached version of their services.

And check the git repo on github, the ./gradlew is not marked as executable, lol.

EDIT: Also promoted your user here so you can use non-whitelisted links.

1 Like

Odd, seems like the Srg2Source dep for ForgeGradle can’t get it’s dose of org.eclipse.jdt.core. I’ll look into recompiling it, but I still say that DCEVM is a god send to have in your workflow.

2 Likes

Give it another shot once you get the chance, I’ve gotten Srg2Source to compile and use a newer version of org.eclipse.jdt.core alongside changing ForgeGradle to use the JitPack built Srg2Source.

2 Likes

Lol, you made @OvermindDL1 update gradle again in his testing environment. Unsure if he used anything you suggested though. XD

1 Like

Nothing related to me as far as I can tell. I’m not sure about Eclipse support but I forked and updated the Gradle Wrapper on my own. Mostly just to peek and poke at GT6, hopefully to backport some things over to GT5u in the future.

EDIT: GitHub - basdxz/gregtech6: This is the Official Repository of the Mod GregTech 6 for Minecraft 1.7

2 Likes

No it was not related to that, I wanted to fix some stuff in the reobf task that breaks some incremental recompiles and I was curious how easy it would be to upgrade to Gradle 7.2 since that’s what I had installed anyway.

2 Likes