• Carl Suster's avatar
    Merge Pull Request #1338 for Eclipse · 8bc0e535
    Carl Suster authored
    Fixes #1217.
    
    Once again ignore .classpath and .project in the Eclipse template. This has
    been requested in multiple PRs such as #1338 and #1221 and is essentially a
    reversion of #805. I copy the explanation for this change from the discussion
    in #1217 by @segfly:
    
    *In short*:
    
    I can't point to any counter-documentation off the top of my head. I just know
    from experience these files pollute a project's repo without adding value
    - that is, unless everyone contributing is using Eclipse and no-one is using
    dependency management. And even then, the guidance provided by the eclipse docs
    is bad advice.
    
    *In Long*:
    
    The .classpath file is used by Eclipse to maintain the project's classpath
    during automatic compile (every save of a file). In the olden days, one would
    manually configure the project within the Eclipse UI and include all the
    dependent jars necessary to compile your project. Eclipse then wrote that
    configuration out to the .classpath file.
    
    In theory, this file could be shared with others so they did not have to
    manually configure their eclipse classpath. In practice, I never saw it work
    out quite so well due to eventual bloating of the classpath with needless jars
    or jars that only existed on one person's machine. Mind you, many people back
    then also used to check their dependent jars into version control along with
    their source.
    
    Dependency management tools like Gradle and Maven have done away with all that
    of course. But they also integrate nicely with Eclipse and manage the project
    classpath dynamically. The .classpath file is basically rebuilt based on
    changes to the build.gradle file or pom.xml file. Effectively, this renders the
    whole point of checking in the .classpath moot as it is easily rebuilt by the
    Maven or Gradle plugin.
    
    The .project file is another animal completely. It basically describes what
    plugins should be applied to the project as configured in the Eclipse UI. Again
    the theory is it could be shared and creates a happy world. But due to
    different eclipse versions people may have, different plugins installed, etc.
    sharing the .project file actually causes more issues. And I've seen many
    projects unable to open due to a bad .project file - requiring one to delete it
    anyway (which then of course, when someone recreates it, they inevitably check
    it in over the old one and end up breaking someone else's environment).
    
    The bottom line is, regardless of what the eclipse documentation says, these
    are very much internal configuration files for eclipse and best left out of
    a repo.
    8bc0e535
Name
Last commit
Last update
..
Anjuta.gitignore Loading commit data...
Archives.gitignore Loading commit data...
BricxCC.gitignore Loading commit data...
CVS.gitignore Loading commit data...
Cloud9.gitignore Loading commit data...
CodeKit.gitignore Loading commit data...
DartEditor.gitignore Loading commit data...
Dreamweaver.gitignore Loading commit data...
Eclipse.gitignore Loading commit data...
EiffelStudio.gitignore Loading commit data...
Emacs.gitignore Loading commit data...
Ensime.gitignore Loading commit data...
Espresso.gitignore Loading commit data...
FlexBuilder.gitignore Loading commit data...
IPythonNotebook.gitignore Loading commit data...
JDeveloper.gitignore Loading commit data...
JetBrains.gitignore Loading commit data...
KDevelop4.gitignore Loading commit data...
Kate.gitignore Loading commit data...
Lazarus.gitignore Loading commit data...
LibreOffice.gitignore Loading commit data...
Linux.gitignore Loading commit data...
LyX.gitignore Loading commit data...
Matlab.gitignore Loading commit data...
Mercurial.gitignore Loading commit data...
MicrosoftOffice.gitignore Loading commit data...
ModelSim.gitignore Loading commit data...
Momentics.gitignore Loading commit data...
MonoDevelop.gitignore Loading commit data...
NetBeans.gitignore Loading commit data...
Ninja.gitignore Loading commit data...
NotepadPP.gitignore Loading commit data...
OSX.gitignore Loading commit data...
README.md Loading commit data...
Redcar.gitignore Loading commit data...
Redis.gitignore Loading commit data...
SBT.gitignore Loading commit data...
SVN.gitignore Loading commit data...
SlickEdit.gitignore Loading commit data...
SublimeText.gitignore Loading commit data...
Tags.gitignore Loading commit data...
TextMate.gitignore Loading commit data...
TortoiseGit.gitignore Loading commit data...
Vagrant.gitignore Loading commit data...
Vim.gitignore Loading commit data...
VirtualEnv.gitignore Loading commit data...
WebMethods.gitignore Loading commit data...
Windows.gitignore Loading commit data...
Xcode.gitignore Loading commit data...
XilinxISE.gitignore Loading commit data...