Thanks for the reply Emmanuel,
A source package makes sense in theory, but how do I create it? Does it contain the uncompiled Java and CFML source for the project? If the source package must contain everything necessary to build my project, what restrictions are their on the build tools? Will I have to rewrite to something other than Ant? The current build is rather large and includes generation of API docs, and updating our artifacts repo.
The additional libraries might be a trick. CommandBox basically wraps Lucee Server, which is a JVM scripting language that runs on a J2EE server and even allows users to spin up ad-hoc web servers in any folder on their drive, so there's a lot of moving parts that have to come together to get it running. Some of the libs are common things like Apache libraries and we pull them from Maven during the builds. Other libraries are custom projects like Runwar.
What is also tricky for us is the executable jar that we build is nice and generic and will run on Windows, Mac, and Linux flavors without changes. The exe, deb, and rpm wrappers are just some sugar to make installation easier. Breaking all the dependencies apart makes a great deal of sense for Debian, but I'm not sure how I'd handle Windows without creating completely separate builds since there's no package management there.
> They must be packaged first and used by the build system
Does this mean I'd have to go through this entire process for every 3rd party lib and get them as separate packages on the Debian repo? Can I solicit sponsorship for packages I don't have any control over? How do you handle different versions of jars? For instance, my project may need version 2.1 even though 2.3 is the latest, etc. Does that also mean I'd have to create a source package and figure out how to compile each of the 3rd party libraries?
This sounds like quite a fun process but I may need to consider whether the time involved will be worth it compared to the inconvenience of having my own deb repo.