At work we have a number of projects which need to share some common code. Some code is completely universal while some of the code is only shared by a subset of our projects. Should I split up the common code into two separate projects or use two different ivy configurations for a single project?
Option 1 - Two separate projects.
- Proj 1 - Common published as default configuration
- Proj 1 - Common-xml published as default configuration
Potential Issues: Requires that I have two separate projects, with two separate build files and two separate ivy files.
Option 2 - One project, multiple ivy configurations for different artifacts
- Artifact 1 - Common published as core
- Artifact 2 - Common xml published as core-xml
Potential Issues: I may have to maintain separate source directories in the same project.
In either case, the common xml component may rely on the common core component.
So, SF, what should I do for maintaining my common code? What issues did I miss with the two methods, and what are any other pros/cons or alternative solutions?