Jump to content

[SOLVED] Build mod which depends on another mod?


SanAndreaP

Recommended Posts

EDIT: I've noticed I've posted it into the wrong forum. Can a moderator please move this to the support forum? Thanks.

 

 

So I recently switched to Forge Gradle and must say I really dig the new system.

 

The only thing I don't get is, how do you build a mod which depends on another mod? The thing is both mods will be build at the same time and have seperate source folders:

/Forge
    /SAPManagerPack
        /java
        /resources
    /EnderStuffPlus
        /java
        /resources

Here the mod EnderStuffPlus is dependent on the (core)mod SAPManagerPack. If I try to build only SAPManagerPack everything works fine, but if I try to compile EnderStuffPlus (alongside with SAPManagerPack), I get "cannot find symbol [insert class from SAPManangerPack here]" errors.

 

Here's the settings.gradle within the Forge folder:

https://gist.github.com/anonymous/8eca6f78174e07e4fc37

 

This is the build.gradle file for SAPManagerPack:

https://gist.github.com/anonymous/adae0cdb9839442142f0

 

and for EnderStuffPlus:

https://gist.github.com/anonymous/6ec1164eca5673525db8

 

Here's the build log:

https://gist.github.com/anonymous/1b6541aa54be45aec1f1

 

 

It would be great if someone here could tell me what I should do in order to get it to work.

Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! |

mah twitter

This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.

Link to comment
Share on other sites

You need some sort of dependency in your build.gradle. Personally I use a maven repo on my webserver, but i am sure you can use a local one as well. Then in your coremod you let it produce 3 jar files, the obfuscated one (default), one with MCP mappings and a sources jar. Then you can just depend on the MCP mapped jar and be good to go. Here is an example how I do it:

 

Coremod build.gradle: https://github.com/diesieben07/SevenCommons/blob/master/build.gradle

Dependent mod build.gradle: https://github.com/diesieben07/CameraCraft3/blob/master/build.gradle

 

Question: do I need a maven repo? What's it used for? I've never used maven before.

Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! |

mah twitter

This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.

Link to comment
Share on other sites

No, you don't need a maven repo. You can depend on a local jar file like shown here: http://stackoverflow.com/questions/19231855/gradle-dependencies-local-jar-file

 

Maven is cool because you can host your jars in a central place and can setup your workspace anywhere without having to worry about dependencies. Also: For example another mod depends on your "EnderStuffPlus" mod. If you use maven, that mod will automatically also depend on your coremod and gradle will download the coremod as well, because the dependency information for EnderStuffPlus is stored in the maven repo.

 

Ah, thanks! I'll try the local jar stuff.

The maven stuff sounds interesting, I'll look into that later.

Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! |

mah twitter

This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.

Link to comment
Share on other sites

Sorry for DP, but it doesn't work. I still get the same errors.

Here are my new build.gradle files:

 

(SAPManagerPack) https://gist.github.com/anonymous/9da75f3c4c50ff69d70b

(EnderStuffPlus)    https://gist.github.com/anonymous/2b8717ff3bb1b42804a8

Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! |

mah twitter

This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.

Link to comment
Share on other sites

So you have the MCP mapped jar in the libs folder? Like this:

 

[root]
|__src
   |__main
      |__... ...
|__libs
   |__MyDependency-mcp.jar
|__build.gradle

 

oh, I didn't know you have to do it like this, but yeah, it works now.

One question though, is there a way to reference the mcp'ed jar directly from the build folder of the Manager Pack? like

 

Forge
|__SAPManagerPack
   |__build
      |__libs
         |__mcp.jar
   |__build.gradle
|__EnderStuffPlus    << this mod references the mcp.jar from above
   |__build.gradle
   |__... ...
|__build.gradle
|__settings.gradle
|__... ...

Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! |

mah twitter

This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.

Link to comment
Share on other sites

Without a maven repo you will have to copy the jar file manually. It has to like this:

 

Forge
|__SAPManagerPack
   |__build
      |__libs
         |__SAPManagerpack-mcp.jar   <-|
   |__build.gradle                     |
|__EnderStuffPlus                      |-- Identical (copy by hand)
   |__libs                             |
      |__SAPManagerpack-mcp.jar      <-|
   |__build
      |__libs
         |__enderStuffsPlus.jar <- This is something completely different!
   |__build.gradle
   |__... ...

 

What is that third build.gradle you have outside the mod folders? What is it doing?

 

P.S. (oldschool for Edit): I really hope you appreciate the time I spent with these ASCII-Arts :P jk

 

Alright, I see. I will make a custom build bat then. Thanks for your help, appreciate it  ;)

Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! |

mah twitter

This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.