Hbm's Nuclear Tech Mod

Hbm's Nuclear Tech Mod

1M Downloads

git won't compile

bHXDgiuMa5yLHyC8 opened this issue · 6 comments

commented

Okay, so I was looking to this "HBM's Nuclear Tech Mod" to be able to add compat for things like GT6 and HEXCraft, however I am unable to find a maven for it and the git for it at https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git (not able to find any other) is not compileable to be able to build a proper dependency for it, so I'm not seeing that this will ever be done until either it gets a proper maven repo or it gets a properly set up git project (look at GT6 or HEXCraft git repo's as example, they are a trivial git clone ... and ./gradlew build in their directories and it all 'just works').

Originally posted by @OvermindDL1 in CelesTek-Team/HexCraft#22 (comment)

For note, if help is wanted to be able to get the git repo for the "HBM's Nuclear Tech Mod" into a proper compileable state then feel free to contact me on IRC at espernet, I'm OvermindDL1 there.

Originally posted by @OvermindDL1 in CelesTek-Team/HexCraft#22 (comment)

commented

Jar files should never ever be included in git, ever.

Also:

➜ ./gradlew archives
Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain
commented

Curious, why shouldn't they?

commented

What exactly is the archives parameter supposed to do?

commented

Curious, why shouldn't they?

Dependency Jar's are output binaries, not input's for gradle, those should be specified by the dependencies maven system in the build.gradle. Using a static dependency jar is always wrong for a variety of reasons.

What exactly is the archives parameter supposed to do?

Force of habit, it should have said no task found but instead the gradle directory was missing so it couldn't find the gradle jar itself to run.


Also, in the build.gradle script these are very wrong:

version = "1.0"
group= "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "modid"

The group should be your namespace, the archivesBaseName should be the mod name, the version should be the current version of it.

The gradle wrapper should have generated a gradle directory as well with the wrapper code, but that seems to have been forgotten. If you copied the gradlew script instead of using the gradle wrapper generator then feel free to grab the gradle directory and everything inside it from GT6's git: https://github.com/GregTech6/gregtech6/tree/master/gradle

The forge version is also old, should update to "1.7.10-10.13.4.1614-1.7.10" instead.

It's also not generating a dev or source jar.

Give me a few minutes and I'll fork and submit a PR with the fixes.

Sadly I can't fix the fact the jar's are in the git history now, it's forever polluted with them and will increase the git clone size now thus slowing it down. They shouldn't have entered the git history to begin with.

Also, other mods API's should absolutely not be included in a given mod, ever, but that's a code related change that a build system related change should not deal with, but that should be fixed as it can cause failures in loading a set of mods together when API mismatches occur.

commented

Also, you're using the broken half of the COFH RF API. That API has two interfaces for handling power and one of them is broken, that's the one that is currently being used. Need to swap to the other (a simple name change, as far as I know the API is otherwise identical). I.E. instead of using IEnergyReceiver, instead use IEnergyHandler. And don't use the super.blahextended functions of the extended interface either as they also break.

commented

Done, the repo now includes the needed libraries as well as the build script. If there's anything missing, let me know.