Breaking out some directories as separate projects, in IDEA and source control

I have an app that's existed for a long time as a single monolithic project. It's being refactored into a main app plus a series of add-ons that I want to make into separate IDEA projects, each with their own source files, build process, and build output.

However, for technical reasons, the source files for add-ons need to be in directories inside the main app. (The build output for add-ons is just a zip, that when installed, results in the source files being in the same location as I have them in the main project tree.)

The main reason to split this into separate projects is that I'm heading towards open-sourcing the whole thing, and while initially I'll be the primary maintainer of the main project and possibly some specific add-ons, it needs to be possible for add-ons to be created and maintained by members of the user community.

Conceptually, what I want to do is exclude the directory where these add-ons are from the main project, and create new projects for each directory inside there, but as far as I know, IDEA projects can't contain other

I'd need to do the same thing at the VCS level (currently local SVN, will probably switch to Git in order to move it to GitHub), and I suspect nest projects aren't possible there either.

Am I right about the things I think aren't doable? Are there ways to accomplish some equivalents?

Hope this makes sense, ask if anything's not clear, and thanks in advance for any help.

5 comments
Comment actions Permalink

Please excuse the typos, didn't check this until now, can't edit it.

Corrections:

"IDEA projects can't contain other *projects*"


"I suspect *nested* projects aren't possible"

0
Comment actions Permalink

Why not use separate modules instead? You may also consider moving to Maven or Gradle which support multiprojects properly and IDEA can import these projects as multiple modules automatically.

0
Comment actions Permalink

Can a module in one project be an entire other project, with separate source control and maintainers? I didn't think that was possible.

Also, the main project is already split into a number of modules. For technical reasons, these add-ons need to be in a subdirectory of a particular one of them. Modules can't be inside other ones, can they?

0
Comment actions Permalink

Module content roots cannot intersect.

0
Comment actions Permalink

That's what I thought.

Still thinking on the best way to accomplish something sort of similar...

0

Please sign in to leave a comment.