[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.tools.jdt] Re: Which Eclipse project files to be placed under source code control?

On 9/15/09 9:48 AM, Rich Kulp wrote:
Hi,

Put them all under. They are all important so that each developer gets
the same settings for a project. Otherwise code may compile and work on
one developer's machine and not on another because of the differences in
the settings and classpaths.

classpath is very important even when sharing. You need to make sure the
same jars and projects are being used in the same compile order.

If you are pointing to external jars there are two normal ways.

1) Classpath variables: These allow variables to be put in the classpath
that will then be customized in the individual workspaces to point to
either directories or individual jars. If it is points to a directory
then the classpath would need to have the jar name extending the
classpath variable in the classpath. This is useful if you have a
diverse set of jars that are different for different projects in the
workspace.

2) Libraries: These are like classpath variables except each library
would be customized in each workspace to point to a set of jars, not
just one jar or folder. This is useful if you have several projects that
all use the same set of external jars.

Either way some customization is needed on each workspace, but by using
the variables or libraries you aren't leaving each developer out in the
cold having to come up with the correct classpath and jars in the
correct order on their own.

There is a third way, classpath containers, but that involves writing
code and isn't that much more useful for the situation you are asking
about. You would still need to customize something to point to the
external jars. They are very useful for complicated classpath
requirements, such as PDE.


Those are excellent recommendations, but there is another option, too: put the external JARs under source control with the project (either in the same project or in a separate "Libs" project that the others depend on). I usually go for that option whenever possible because it makes things even more easy to get up and running; it also allows different projects to depend on different versions of the same libraries when necessary.
I always strive to minimize the number of manual steps required to go from clean machine to building/running the app; checking in JARs with the project helps in that goal.


Hope this helps,
Eric