Forums Register Login

Classpath Build Order Changes (entries in .classpath file keep becoming reset)

+Pie Number of slices to send: Send
I am using Eclipse3.5 JEE 64 bit on OS X Snow Leopard.

Was wondering how the .classpath file's <classpathentry> tag's order gets changed everytime I run a standard Ant build script.

When I manually change the build path order like this (via Eclipse):

(1) Right click on project in Project Explorer.

(2) A context menu opens up

(3) Go to Build Path

(4) Configure Build Path

(5) Click on the Java Build Path Order and Export Tab

(6) Modified the order to look like this:

myproject/work/src (moved this to the top)
myproject/work/test/unit
myproject/work/impl/src (this is a linked resource which points to a 2nd Eclipse project which is open in Eclipse at the same time)

The myproject/work/impl/src by default is at the first position for the order. Manually moved myproject/work/src to the top (by clicking on the Up button).

When I run my build script, it seems that the .classpath file (which this order is written to behind-the-scenes) is reset to how it was before:



Why is this? Where and when does Eclipse modify the .classpath file? How can it be set so people can change the build order manually through Eclipse but the .classpath's build order never gets reset to its defaults? After setting this and building the project by right mouse clicking on my project (not the impl one) and going to Build Project, the order never gets changed. It only resets when the Ant build script is run.
+Pie Number of slices to send: Send
I used to play with stuff like that. I don't anymore, although that's largely because Maven makes the idea pretty much meaningless.

Although it can be aesthetically appealing to order your classpath entries "just so", in actuality, if the order that you have your classpath entries specified is critical, then you have a problem. I'm not even sure if the Java spec specifies that classpath entries have to be searched in a linear sequence, but Java wasn't intended to allow overriding class retrieval by shifting around classpath entries. In fact, that could be considered a security issue. So in the normal course of events, there should be one and only one copy of each class in the classpath, making the actual physical ordering of classpath entries a moot point.
1
+Pie Number of slices to send: Send
Hi Tim,

Actually not... Classpath ordering is very important when you have 2 different projects open in Eclipse and link both projects to each other as Shared Resources.

Either way, I found the properties file which changes everything and its now fixed. I now can just build the top project and the impl gets moved over.

Thank you for taking the time to read this.
+Pie Number of slices to send: Send
Actually that sounds more like dependency ordering than classpath ordering.
+Pie Number of slices to send: Send
where is that property file in eclipse
There is no "i" in denial. Tiny ad:
a bit of art, as a gift, that will fit in a stocking
https://gardener-gift.com


reply
reply
This thread has been viewed 3065 times.
Similar Threads
Classpath troubles
How referenced libraries work...
Eclipse projects on removable media
The jar synchronization issue seems to be out of hand.
beginner maven question classpath and deployment
More...

All times above are in ranch (not your local) time.
The current ranch time is
Apr 16, 2024 07:25:20.