title: Organizing multiple scala interrelated sbt & git projects - best practice suggestions
body: <p>With <code>scala</code>, using <code>sbt</code> for builds and <code>git</code> for version control, what would be a good way of organizing your team code when it outgrows being a single project? At some point, you start thinking about separating your code into separate libraries or projects, and importing between them as necessary. How would you organize things for that? or would you avoid the temptation and just manage all packages under the same sbt and git single "project"?</p>
  
  <p>Points of interest being: (feel free to change)</p>
  
  <ul>
  <li>Avoiding inventing new "headaches" that over-engineer imaginary needs.</li>
  <li>Still being able to easily <em>build everything</em> when you still want to, on a given dev machine or a <code>CI server</code>.</li>
  <li>Packaging for production: being able to use <code>SbtNativePackager</code> to package your stuff for production without too much pain.</li>
  <li>Easily control which version of each library you use on a given dev machine, and being able to switch between them seamlessly.</li>
  <li>Avoiding git manipulation becoming worse than it basically typically is.</li>
  </ul>
  
  <p>In addition, would you use some sort of "local sbt/maven team repository" and what may need to be done to accomplish that? hopefully, this is not necessary though.</p>
  
  <p>Thanks!</p>