Resolve in workspace
Some projects are composed of mulpliple modules. Often, these modules have dependencies between them, dependencies managed by Apache Ivy (of course!).
Eclipse is capable of calculating the workspace's build order according to dependencies between projects. To leverage this advantage, Apache IvyDE has the ability to add a project reference to a dependency located in the workspace in place of downloading its published artifact(s) from the repository. In this way, developers can develop multi-module applications, and test the interaction between these modules, before building and publishing artifacts to the repository.
Consider a multi-module application with a considerable amount of code in each of several projects. Many developers have experienced the delays involved in waiting for Eclipse to build code across all of these projects even though development is only being conducted in one isolated part of the application (maybe just one or two projects). If the latest published artifact in the Ivy repository has the same source code as a module that the developer is not currently working on, simply closing that project in the Eclipse workspace and resolving dependencies on dependent projects that would resolve that artifact speeds the compilation process considerably.
First, each application module should be separate a project in Eclipse, and each of these projects should have a configured IvyDE classpath container.
To enable resolution in the workspace, go to the "classpath" panel of the classpath container and select Resolve dependencies in workspace.
- The org and name
- If there is a rev specified, dependencies should specify the appropriate range
- If there is no rev specified, only dependencies with lastest will match
- The status should match the required one: a dependency with latest.integration will only match if there is status="interation" in the info of the dependant module
A dependency on B | B declared revision | result |
---|---|---|
latest.integration | 1.2 | B wired on A |
1.2 | 1.2 | B wired on A |
[1.2,1.3) | 1.2 | B wired on A |
1.0 | 1.2 | no project wiring |
latest.integration | none | B wired on A |
1.2 | none | B wired on A |
[1.2,1.3) | none | B wired on A |
latest.integration | $version | no project wiring |
1.2 | $version | no project wiring |
[1.2,1.3) | $version | no project wiring |
- see the defaultResolveMode attribute of settings in the ivysettings.
- see the resolveMode attribute of module in the ivysettings.
WTP support
Note that WTP doesn't support IvyDE's workspace resolver. See the details in the page dedicated to WTP integration.Printer Friendly