Hello, I am currently creating a game which has a client, server, and common package. Each of these packages has several subpackages. How would I configure the JME3 SDK do do the equivalent to the following IntelliJ IDEA setup:
(sorry for the formatting, code tags were the only way I could think of preserve the indentation. Additionally, every module can access the entire JME3 library)
Project:
Server Module:
Contains server code
Exports to GameName-Server.jar
Exported jar includes compiled common module, all JME3 libraries, and project assets
Can't access code in client module
Common Module:
Contains code used by both the server and client (ie. the message classes for SpiderMonkey)
Does not export itself, but is instead included as a library in another jar
Can only access it's own code
Client Module:
Contains client code
Exports to GameName-Client.jar
Exported jar includes compiled common module, all JME3 libraries, and project assets
Can't access code in server module, can access code in common module
I would just do this in IntelliJ IDEA, but I’d much rather be able to also use the tools available only through the SDK (ie. terramonkey, j3o binaries, etc.). So, if there is some way that I can have all features of the SDK but still organize my code in an IntelliJ IDEA project that would work if there is no way to configure the SDK/NetBeans to do this.
I tried creating three SDK projects (one for each module), however it appears to be impossible to have them depend on each other, include the common module in their final jars – not as an external jar, bundle JME3 in the jar – again, not externally, and get netbeans to directly read off of the source of other projects rather than their latest built jar (ie. the server and client modules/projects would compile against the latest common JAR rather than the latest common source code, which I want compiled automatically whenever I compile either server or client modules/projects). Of course, I could just put everything in a single project, but then the only possible way (that I can figure out) to determine which runs (the server or client) is with a startup option, and I don’t want the server available to the people running the client (they should only have the compiled client and common modules) since this is, more or less, an MMO.
Thanks in advance to anyone who knows what I should do. I know this seems like spoonfeeding, but it really isn’t since I made a significant attempt (see previous paragraph) to solve this myself.