title: Eclipse android programming - team work configuration
body: <p>Although I searched a lot for Eclipse &amp; Android development in a team
   methodology, I was not able to find a clear suggestion of a correct
   way to configure Eclipse and source control environment to work nicely
   together.</p>
  
  <hr>
  
  <p>I am a <code>C#</code> developer, and on Visual Studio everything is layed-out
   nicely:</p>
  
  <p>You Have a <strong>solution</strong> file <code>(xml)</code> which contains a definitions for
   the projects and their relations and configuration, in addition each
   <strong>project</strong> has its own configuration in a <strong>project definition file</strong> (also <code>xml</code>). You check-in to source control all the sources and the
   projects and <strong><code>sln</code></strong> file (the configuration files) and for each new
   user you just have to checkout (clone) all the files and compile the
   solution locally - everything is already configured, all you have to
   do is double click on the solution file and rebuild the solution.</p>
  
  <p>If you have any other dependencies (<code>dll</code> files)- you just add them to
   your project (could be folder in the project or common folder for
   several project) and reference the required dll from the project
   definition, and commit (push, checkin) all the <code>dll</code>s` as part of you
   source control.</p>
  
  <p>In Addition a solution have virtual folders where you can group
   several projects together in a logical manner with no technical
   implications. </p>
  
  <hr>
  
  <p>In <strong>Eclipse</strong> and <strong>Android</strong> specifically - everything is different
   and mostly not comfortable or logical at all.</p>
  
  <p>You have a <strong>workspace</strong> with <strong>projects</strong> - where <strong>workspace</strong> is
   not really a solution and its <strong><em><code>.metadata</code></em></strong> files are <strong>truly
   meant to be local</strong> and should <strong>NOT</strong> be checked in to source
   control. <a href="https://stackoverflow.com/questions/6668730/what-to-check-in-from-an-eclipse-workspace-metadata">What to check-in from an Eclipse workspace .metadata</a></p>
  
  <p>So you have no <strong>solution level configuration</strong> to check-in to source
   control. (Checking out projects and importing them to a workspace and
   reconfigure everything per client is not reasonable) The only solution
   I found for that was <strong>Projects Set</strong> which I have to update manually
   each time I add project to the workspace (export the project set to a
   file and commit the changes to the file manually) and in addition this
   concept ties me to the source control (In visual studio I can copy a
   solution folder with its projects sub folders and dependencies folder,
   zip it and send by mail - and everything will work the same). <a href="https://stackoverflow.com/questions/3796769/how-to-organize-projects-and-solutions-in-eclipse">How to
   organize “projects” and “solutions” in Eclipse?</a> <a href="http://wiki.eclipse.org/Project_Set_File" rel="nofollow noreferrer">Project Set
   File</a> <a href="http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.platform.doc.user%2Freference%2Fref-71.htm" rel="nofollow noreferrer">Team Project Set</a></p>
  
  <p>In addition to that in android - for example when using Google play
   services, the suggested way to reference their lib (jar file and some
   resources files) is to copy google_play_lib from the sdk and reference
   the project itself (that is due to resource which must be compiled to
   your apk file), this means I have to add the google play lib project
   to my source control - which seems a bad thing to do. References for
   that: <a href="https://stackoverflow.com/questions/16781787/why-do-google-recommend-copying-libraries-into-your-tree">Why do Google recommend copying libraries into your tree?</a>
   <a href="https://stackoverflow.com/questions/21145478/should-i-check-in-the-google-play-services-library-project-to-source-version-con">should I check in the Google Play services library project to source
   version control for GCM support?</a></p>
  
  <p>So I am kind of frustrated here from eclipse configurations for
   android and source control management (especially compared to Visual
   Studio).</p>
  
  <p>Would love any team configurations and source control management
   tips/tutorials for Eclipse and Android development.</p>
  
  <p>Thanks.</p>