diff --git a/tycho-core/src/main/java/org/eclipse/tycho/osgi/runtime/TychoOsgiRuntimeLocator.java b/tycho-core/src/main/java/org/eclipse/tycho/osgi/runtime/TychoOsgiRuntimeLocator.java index 1e878e5..e96a3b8 100644 --- a/tycho-core/src/main/java/org/eclipse/tycho/osgi/runtime/TychoOsgiRuntimeLocator.java +++ b/tycho-core/src/main/java/org/eclipse/tycho/osgi/runtime/TychoOsgiRuntimeLocator.java @@ -38,6 +38,7 @@ import org.eclipse.sisu.equinox.embedder.EquinoxRuntimeLocator; import org.eclipse.tycho.dev.DevWorkspaceResolver; import org.eclipse.tycho.locking.facade.FileLockService; import org.eclipse.tycho.locking.facade.FileLocker; +import org.sonatype.aether.repository.WorkspaceReader; /** * Implementation of {@link org.eclipse.sisu.equinox.embedder.EquinoxRuntimeLocator} for Tycho's @@ -94,6 +95,9 @@ public class TychoOsgiRuntimeLocator implements EquinoxRuntimeLocator { @Requirement private DevWorkspaceResolver workspaceState; + @Requirement(hint = "ide") + private WorkspaceReader workspaceReader; + public void locateRuntime(EquinoxRuntimeDescription description) throws MavenExecutionException { WorkspaceTychoOsgiRuntimeLocator workspaceLocator = WorkspaceTychoOsgiRuntimeLocator .getResolver(this.workspaceState); @@ -201,6 +205,13 @@ public class TychoOsgiRuntimeLocator implements EquinoxRuntimeLocator { Artifact artifact = repositorySystem.createArtifact(dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion(), dependency.getType()); + if (workspaceReader != null) { + File artifactFile = workspaceReader.findArtifact(artifact); + if (artifactFile != null) { + artifact.setFile(artifactFile); + } + } + ArtifactResolutionRequest request = new ArtifactResolutionRequest(); request.setArtifact(artifact); request.setResolveRoot(true).setResolveTransitively(false);