Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
2.3
-
None
-
None
Description
When all dependencies of projects are marked as 'exported' in the .classpath file, this creates chaos in the classpath.
An example:
continuum-release depends on:
- maven-project 2.0.4
- maven-release-plugin, which depends on maven-project 2.0
Due to an API change (ProjectSorter added another exception in 2.0.4), I get an error in eclipse,
because the code catches the exception defined in 2.0.4 but eclipse sees the implementation
from 2.0 which doesn't throw that.
Two solutions:
- sort projects by transitive dependencies, so that the correct version is resolved. However, eclipse doesn't honor the order - project dependencies seem to come before library dependencies, no matter what the order is in the BuildPath->Order And Export tab. Ordering is also impossible, because two projects could be considered to be listed before eachoter:
MAIN depends on A and B.
A depends on C 1.0 and D 1.1
B depends on C 1.1 and D 1.0.
MAIN depends on C 1.0 and D 1.0.
No way to order this properly, A needs to come before B because of C, and B needs to come before A because of D.
Anyway, this option doesn't work.
- Simplest solution: do NOT export any dependencies, and list all transitive dependencies explicitly. As the plugin currently already
lists all transitive dependencies as project dependencies in eclipse, all that needs to be done is remove the 'exported="true"' flag
from the .classpath entries.
Attachments
Issue Links
- is related to
-
MECLIPSE-370 Option to rely on transitive dependencies
- Closed