问题
My team handles several Java projects using Eclipse, and shares the code using a code repository.
When a developer adds, removes or updates a jar file, the build is broken for everybody else, until they update their build path in Eclipse. This process involves cumbersome email synchronization.
For several reasons, we have decided not to commit the .classpath file to the repo. Instead, we came up with the following idea: Each project will have a committed file, say jars.list, which contains a list of jar files (and patterns). A script will convert this file into a local .classpath for eclipse. Whenever a developer changes its jars, it is his or her responsibility to change jars.list and commit it.
Is this a reasonable solution? Are there any existing solutions for this problem?
回答1:
Eclipse .project and .classpath files are intended/designed to be checked into a version control repository (cvs, svn, git, etc). See this page in the Eclipse wiki.
There are various ways to keep the .classpath file "clean" (ie, free from absolute paths), which I mentioned in the Comments section above.
回答2:
The build is broken because the absolute path to the JAR is different in each developer machine? If so, you could add a user variable to avoid the issue, this way each developer only have to configure one variable (like LIB_DIR):
<classpathentry kind="var" path="LIB_DIR/path/to/file.jar"/>
There are other solutions. You could configure some user libraries in eclipse to group your JARs, and then export a .userlibraries file which could be shared in your repo. This way, there would be no absolute paths in .classpath, but they would be present in your .userlibraries.
You could also use some tool like Maven to manage dependencies on your project.
Anyway, I think you could share .classpath without problems...
来源:https://stackoverflow.com/questions/10301845/synchronizing-eclipse-classpath-in-code-repository