733e99cdb1
When running in local mode, dependencies should be resolved by looking on the local system. Remote repositories should be ignored.
85 lines
5.2 KiB
Diff
85 lines
5.2 KiB
Diff
diff --git a/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/target/TargetDefinitionResolver.java b/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/target/TargetDefinitionResolver.java
|
|
index 2d7d3b9..3084fff 100644
|
|
--- a/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/target/TargetDefinitionResolver.java
|
|
+++ b/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/target/TargetDefinitionResolver.java
|
|
@@ -24,6 +24,7 @@ import org.eclipse.core.runtime.CoreException;
|
|
import org.eclipse.core.runtime.IProgressMonitor;
|
|
import org.eclipse.core.runtime.IStatus;
|
|
import org.eclipse.core.runtime.NullProgressMonitor;
|
|
+import org.eclipse.core.runtime.URIUtil;
|
|
import org.eclipse.equinox.p2.core.IProvisioningAgent;
|
|
import org.eclipse.equinox.p2.core.ProvisionException;
|
|
import org.eclipse.equinox.p2.metadata.IInstallableUnit;
|
|
@@ -100,8 +101,11 @@ public class TargetDefinitionResolver {
|
|
|
|
List<IMetadataRepository> metadataRepositories = new ArrayList<IMetadataRepository>();
|
|
for (Repository repository : iuLocationDefinition.getRepositories()) {
|
|
- artifactRepositories.add(repository.getLocation());
|
|
- metadataRepositories.add(loadRepository(repository));
|
|
+ // We cannot resolve a non-file URI in local mode
|
|
+ if (System.getProperty("maven.local.mode") == null || URIUtil.isFileURI(repository.getLocation())) {
|
|
+ artifactRepositories.add(repository.getLocation());
|
|
+ metadataRepositories.add(loadRepository(repository));
|
|
+ }
|
|
}
|
|
|
|
IQueryable<IInstallableUnit> locationUnits = new CompoundQueryable<IInstallableUnit>(
|
|
diff --git a/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/target/TargetPlatformBuilderImpl.java b/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/target/TargetPlatformBuilderImpl.java
|
|
index 9da87bb..3d15c5e 100644
|
|
--- a/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/target/TargetPlatformBuilderImpl.java
|
|
+++ b/tycho-bundles/org.eclipse.tycho.p2.resolver.impl/src/main/java/org/eclipse/tycho/p2/target/TargetPlatformBuilderImpl.java
|
|
@@ -255,6 +255,11 @@ public class TargetPlatformBuilderImpl implements TargetPlatformBuilder {
|
|
return;
|
|
}
|
|
|
|
+ // We cannot resolve a non-file URI in local mode
|
|
+ if (System.getProperty("maven.local.mode") != null && !URIUtil.isFileURI(location)) {
|
|
+ return;
|
|
+ }
|
|
+
|
|
try {
|
|
metadataRepository = metadataRepositoryManager.loadRepository(location, monitor);
|
|
metadataRepositories.add(metadataRepository);
|
|
diff --git a/tycho-core/src/main/java/org/eclipse/tycho/osgi/runtime/TychoP2RuntimeLocator.java b/tycho-core/src/main/java/org/eclipse/tycho/osgi/runtime/TychoP2RuntimeLocator.java
|
|
index 15b3fff..c8f14df 100644
|
|
--- a/tycho-core/src/main/java/org/eclipse/tycho/osgi/runtime/TychoP2RuntimeLocator.java
|
|
+++ b/tycho-core/src/main/java/org/eclipse/tycho/osgi/runtime/TychoP2RuntimeLocator.java
|
|
@@ -23,6 +23,7 @@ import org.apache.maven.artifact.repository.ArtifactRepository;
|
|
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
|
|
import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
|
|
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
|
|
+import org.apache.maven.artifact.resolver.JavadirWorkspaceReader;
|
|
import org.apache.maven.artifact.resolver.ResolutionErrorHandler;
|
|
import org.apache.maven.execution.MavenSession;
|
|
import org.apache.maven.model.Dependency;
|
|
@@ -38,6 +39,7 @@ import org.codehaus.plexus.util.FileUtils;
|
|
import org.eclipse.sisu.equinox.embedder.EquinoxRuntimeLocator;
|
|
import org.eclipse.tycho.locking.facade.FileLockService;
|
|
import org.eclipse.tycho.locking.facade.FileLocker;
|
|
+import org.sonatype.aether.util.artifact.DefaultArtifact;
|
|
|
|
@Component(role = EquinoxRuntimeLocator.class)
|
|
public class TychoP2RuntimeLocator implements EquinoxRuntimeLocator {
|
|
@@ -158,6 +160,21 @@ public class TychoP2RuntimeLocator implements EquinoxRuntimeLocator {
|
|
}
|
|
|
|
private File resolveArtifact(MavenSession session, Artifact artifact) throws MavenExecutionException {
|
|
+
|
|
+ // If we are in local mode, find the artifact on the system
|
|
+ if (System.getProperty("maven.local.mode") != null) {
|
|
+ JavadirWorkspaceReader wReader = new JavadirWorkspaceReader();
|
|
+ DefaultArtifact newArtifact = new DefaultArtifact(artifact.getGroupId()
|
|
+ + ":" + artifact.getArtifactId()
|
|
+ + ":" + artifact.getType()
|
|
+ + ":" + artifact.getVersion());
|
|
+ File file = wReader.findArtifact(newArtifact);
|
|
+ if (file != null) {
|
|
+ artifact.setFile(file);
|
|
+ return file;
|
|
+ }
|
|
+ }
|
|
+
|
|
List<ArtifactRepository> repositories = new ArrayList<ArtifactRepository>();
|
|
for (MavenProject project : session.getProjects()) {
|
|
repositories.addAll(project.getPluginArtifactRepositories());
|