Which JRE System Library Option for Multi-Programmer Projects
I'm with a small team sustaining a Java-EE based web project. We're using Eclipse exclusively as the lead programmer is uncomfortable with Maven and doesn't know NetBeans at all (and the organization we work for won't buy a commercial IDE). We use GIT as our source control system. We've solved a number of multi-programmer issues with Eclipse (e.g. how to define external jars with relative instead of hard-coded paths), but we've still got an annoying one. Frequently each of us has to go into the build path for each sub-project (there are 14 of them) and reset the JRE system library after a merge (from our remote master, and therefore from stuff pushed by the other programmers). We can't seem to see any rhyme or reason for it; it will reset the minor version of Java to one that none of us has installed (Java 8.0_77), or set to a blank "alternate JRE", or some such other issue. Early on, we sometimes did each have different JDK/JRE installed, but we're completely in sync now. We've tried using all three options (Execution environment, Alternate JRE and Workspace Default). We cannot be the only people using Eclipse and GIT in a multi-programmer environment. How do you set up the Java library (or what workspace files have to be included in GIT) so that everyone stays in sync? Is there a way to do it so that when the Java version is updated (now automagically by our IT/IA people whether we want them to or not), Eclipse doesn't get confused by insisting on a specific minor version? All of the 'resetting' answers I've found on Stack Overflow seem to deal with issues caused by the m2e plugin, which we're not using. Also note that we store the .settings and .classpath in GIT, but not .metadata, mostly because we frequently have to completely wipe out and recreate projects when we switch between branches (which is a subject for yet another question at another time).
These are some tips that may help: At eclipse, go to Window > Preferences > Java > Installed JREs. Verify that all your team have (at least) a JVM with the same minor version (I explain, jdk1.6 or jdk1.7 or jdk1.8) ... This will depend of the target JVM of your project! ... Also verify that everybody have the same JDK as default! Then, go to "Execution Enviorments" and set a JVM for each JavaSE Version! Example: This acts as label for your Java Environments... this way any eclipse project can say that it works with JavaSE8 instead of jdk1.8.0_70 or jdk1.8.0_60 (and the eclipse metadata files would not have to change between programmers) Verify that you're versioning the .classpath file for each project and submodule. Verify that you're file has a node like this: <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> Verify how this file is being stored at GIT... may be it's being updated between programmers because a bad IDE configuration. Check if when you import your project into the IDE, the .classpath file is being modified... particularly, the <classpathentry kind="con" node And for last (and may be the most important!), change your "Lead Programmer"! (Seems lost and clueless)... Any experience programmer will tell you that implement this kind of development environment only brings problems of Maintainability and High coupling (problems that you're facing right now)... In other words, you're going backwards and coding like the year 2003 or even before... Take my advice, use MAVEN and let anyone use the IDE that they want (at my team, we're are 6 or more developers, and some use eclipse, some netbeans and some intelliJ, in the same project!)...
OSGi headless deployment on Linux
Eclipse is printing the wrong characters in the text editor
Spring classpath path unit testing eclipse
Egit for Eclipse on Mac OSX
firefox-esque tab groups for eclipse
Change variable hover window background while debugging on Eclipse
Difference between Eclipse's “clean project” and Maven's “mvn clean” in m2e
Eclipse: Create a group of tabs(Console, Servers, Problems … )
TestNG behaves different in Eclipse and in ANT
Connecting each JPanel superclass(include JRadioButtons)
GWT Wizards are not showing in the eclipse Wizards menu
how can I modify gvim to follow objects and variables to their definition?
How to configure findbugs plugin in eclipse?
Eclipse : Cursor beyond end of line - is there any solution? [duplicate]
Which OSGi specification implementation am I using when building against the Eclipse 3.7 Target Platform?
Deploying J2ME midlet on BlackBerry using Eclipse