Under certain conditions the resolve in workspace resolver fails to find the appropriate project to add into the classpath container. After stepping through the code I found a few potential problems.
1 - The workspace project may have a revision with the pattern "working@WORKSTATION_NAME". At the same time the revision specified in the ivy.xml may have an explicit revision. In this case I would want my working copy to take precedence. When this is the case the default chain resolver falls through each of its child resolver checks since the specified revision is not dynamic for any of them. In effect, this makes the resolver only use "exact" which will fail. I have some doubts as to why the chain resolver does not use the "accept" method for each of its child resolvers but that is outside the scope of ivyde so my solution avoids the problem by wrapping whatever the default resolver is in a new chain resolver which falls through to a new abstract resolver looking specifically for "workstation@".
2 - If the project had been resolved previously to a cache location the cached jar in my case was taking precedence over the project. I stepped through this code and found that there is a comparison for the "default" attribute of a revision. I did not see usage elsewhere in the project of the default attribute so I simply set it to false for the generated module descriptor.
|Fix Version/s||2.0.0.final [ 12313533 ]|
|Component/s||workspace resolver [ 12312942 ]|
|Component/s||classpath container [ 12311720 ]|
|Status||Open [ 1 ]||Resolved [ 5 ]|
|Assignee||Nicolas Lalevée [ hibou ]|
|Fix Version/s||2.1.0 [ 12314066 ]|
|Resolution||Fixed [ 1 ]|