Posted August 14, 201312 yr Would anyone happen to know how to compile a mod as a jar, instead of a zip. if (You.likescoding == false){ You.goaway; }
August 14, 201312 yr Generally you just package your compiled source and your resources together into a jar package (using the jar creator built into JVM). At least when you are creating a coremod, you need a META-INF folder and a MANIFEST.MF file to designate the main mod file. I assume that you are working with a regular mod, in which case I don't know how that step differs. You should be able to look that up without much trouble.
August 14, 201312 yr heu ... jars are zip files ... just rename the extention... how to debug 101:http://www.minecraftforge.net/wiki/Debug_101 -hydroflame, author of the forge revolution-
August 14, 201312 yr Would anyone happen to know how to compile a mod as a jar, instead of a zip. to all intents and purposes, a jar file is a zip file... if you zip it, and rename to a jar, it's a jar... the differences become apparent when you want to sign the jar for security, and add meta data to the jar package... is that what you're needing to do it for? edit... damn, hydro beat me to that
August 14, 201312 yr Author What I meant was, is it possible to compile it with eclipse, because Ive tried and it didn't work, so is there some way to do it. I have the Deathseeker512 setup, where My mod is in its own java project. if (You.likescoding == false){ You.goaway; }
August 14, 201312 yr just run recompile.sh (or.bat for windows user) and reobfuscate.sh/.bat then all the files you need zipped will be in mcp/reob/minecraft/* how to debug 101:http://www.minecraftforge.net/wiki/Debug_101 -hydroflame, author of the forge revolution-
August 14, 201312 yr i use an ant build... specifically, i modified pahimar's build.xml etc for my own purposes, since i started modding the other month following his setup... his readme on his github here should be self-explanatory [it was for me] https://github.com/pahimar/Equivalent-Exchange-3 [ obviously modifying his instructions for compiling ee3 to suit your own project's paths etc ]
August 14, 201312 yr i use an ant build... no actually ant build is super usefull but i made my own script (in bash) that does the equivalent, zip, sign and upload to my server automaticly @op if you care to learn ant it will be usefull, if you just want to do it the easy manual way, run those script how to debug 101:http://www.minecraftforge.net/wiki/Debug_101 -hydroflame, author of the forge revolution-
August 14, 201312 yr but i made my own script (in bash) that does the equivalent, zip, sign and upload to my server automaticly nice. to be honest, once i realised what the build.xml was actually instructing ant to do, i guess i could have done the same... bash is my friend but once i had ant doing it, i shrugged ... uploading it is a nice touch tho... i use a sshfs to my server, so that's trivial i guess [goes away to type in a terminal]
August 14, 201312 yr Author Using ant now, just don't quite know what to edit in the build.xml if (You.likescoding == false){ You.goaway; }
August 14, 201312 yr Author when i try to run the build script with ant this is what i get /Users/kakarotvg/Desktop/forge modding 1.6.1/Hand_of_Omega/build.xml:10: The element type "project" must be terminated by the matching end-tag "</project>". if (You.likescoding == false){ You.goaway; }
August 14, 201312 yr when i try to run the build script with ant this is what i get /Users/kakarotvg/Desktop/forge modding 1.6.1/Hand_of_Omega/build.xml:10: The element type "project" must be terminated by the matching end-tag "</project>". you've broken the xml somehow... either you've incorrectly terminated a quoted string, or generally hosed it... can't really tell without a pastebin of your xml... but it'll be something very silly like that... use an xml editor if possible, it should tell you
August 14, 201312 yr Author i used the nano command in terminal, but what xml editors do you recommend for mac if (You.likescoding == false){ You.goaway; }
August 14, 201312 yr Author xml code <?xml version="1.0" ?> <project name="Hand_of_Omega" default="build"> <property file="build.properties" prefix="build"/> <property file="build_number.properties" prefix="build_number"/> <target name="clean"/> <delete dir="${build.dir.development}\forge\mcp\src\minecraft\" /> <delete dir="${build.dir.development}\mcp\reobf\minecraft" /> </target> <target name="increment_build_number"> <propertyfile file="build_number.properties"> <entry key="build_number" type="int" operation="+" default="1"/> </propertyfile> </target> <target name="prep"> <copy todir="${build.dir.development}\forge\mcp\src\minecraft"> <fileset dir="${build.dir.development}\Hand_of_Omega\Common\" /> </copy> </target> <target name="replace_tokens"> <replace dir="${build.dir.development}\mcp\src\minecraft" token="@VERSION@" value="${build.release.mod.version}" /> <replace dir="${build.dir.development}\mcp\src\minecraft" token="@FINGERPRINT@" value="${build.release.mod.fingerprint}" /> <replace dir="${build.dir.development}\mcp\src\minecraft" token="@BUILD_NUMBER@" value="${build_number.build_number}" /> </target> <target name="recompile"> <exec dir="${build.dir.development}\forge\mcp" executable="cmd" osfamily="windows"> <arg line="/c recompile.bat" /> </exec> <exec dir="${build.dir.development}\forge\mcp" executable="bash" osfamily="unix"> <arg line="recompile.sh" /> </exec> </target> <target name="reobfuscate"> <exec dir="${build.dir.development}\forge\mcp" executable="cmd" osfamily="windows"> <arg line="/c reobfuscate_srg.bat" /> </exec> <exec dir="${build.dir.development}\forge\mcp" executable="bash" osfamily="unix"> <arg line="reobfuscate_srg.sh" /> </exec> </target> <target name="sign_jar"> <signjar jar="${build.dir.release}\${build.release.minecraft.version}\${build.release.mod.version}\handofomega-${build.release.mod.version}-${build_number.build_number}.jar" keystore="${build.keystore.location}" alias="${build.keystore.alias}" storepass="${build.keystore.password}" /> </target> <target name="build"> <!-- Prep for the build --> <antcall target="clean" /> <antcall target="increment_build_number" /> <antcall target="prep" /> <antcall target="recompile" /> <antcall target="reobfuscate" /> <!-- Build the jar --> <mkdir dir="${build.dir.release}\${build.release.minecraft.version}\${build.release.mod.version}" /> <jar destfile="${build.dir.release}\${build.release.minecraft.version}\${build.release.mod.version}\handofomega-${build.release.mod.version}-${build_number.build_number}.jar"> <fileset dir="${build.dir.development}\forge\mcp\src\minecraft\" includes="mcmod.info" /> <fileset dir="${build.dir.development}\forge\mcp\reobf\minecraft" /> <fileset dir="${build.dir.development}\forge\source\Hand_of_Omega\Resources" excludes="**/xcf/**" /> </jar> <!-- Clean up the MCP source now that we are done --> <antcall target="clean" /> </target> <target name="release"> <!-- Prep for the build --> <antcall target="clean" /> <antcall target="increment_build_number" /> <antcall target="prep" /> <antcall target="replace_tokens" /> <antcall target="recompile" /> <antcall target="reobfuscate" /> <!-- Build the jar --> <mkdir dir="${build.dir.release}\${build.release.minecraft.version}\${build.release.mod.version}" /> <jar destfile="${build.dir.release}\${build.release.minecraft.version}\${build.release.mod.version}\handofomega-${build.release.mod.version}-${build_number.build_number}.jar"> <fileset dir="${build.dir.development}\forge\mcp\src\minecraft\" includes="mcmod.info" /> <fileset dir="${build.dir.development}\forge\mcp\reobf\minecraft" /> <fileset dir="${build.dir.development}\Hand_of_Omega\Resources" excludes="**/xcf/**" /> </jar> <!-- Sign the finished jar --> <antcall target="sign_jar" /> <!-- Clean up the MCP source now that we are done --> <antcall target="clean" /> </target> </project> if (You.likescoding == false){ You.goaway; }
August 14, 201312 yr you can use xmllint on the command line in terminal... and what it identifies is that you've closed "target" here: <target name="clean"/> <delete dir="${build.dir.development}\forge\mcp\src\minecraft\" /> <delete dir="${build.dir.development}\mcp\reobf\minecraft" /> </target> take out that slash from the opening tag [ edit: to clarify, xmllint is osx's xml commandline validator tool... i happen to use smultron as a general editor... but its xml validator seems to be lame ]
August 14, 201312 yr Author Its ok i actually got it working with another tutorial but thanks anyway if (You.likescoding == false){ You.goaway; }
August 14, 201312 yr Author for those wondering this was what worked <?xml version="1.0" encoding="UTF-8" ?> <project name="Hand of Omega" basedir="../" default="build"> <target name="build"> <delete dir="build" /> <delete dir="forge/mcp/reobf/minecraft" /> <copy todir="forge/mcp/src/minecraft"> <fileset dir="Hand_of_Omega/Common/"> </fileset> </copy> <mkdir dir="build" /> <exec executable="recompile.bat" dir="forge/mcp" resolveexecutable="true" osfamily="windows"></exec> <exec executable="reobfuscate.bat" dir="forge/mcp" resolveexecutable="true" osfamily="windows"></exec> <exec executable="recompile.sh" dir="forge/mcp" resolveexecutable="true" osfamily="unix"></exec> <exec executable="reobfuscate.sh" dir="forge/mcp" resolveexecutable="true" osfamily="unix"></exec> <jar destfile="build/Hand_of_Omega.jar"> <fileset dir="forge/mcp/reobf/minecraft" /> <fileset dir="Hand_of_Omega/Resources"/> </jar> </target> </project> if (You.likescoding == false){ You.goaway; }
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.