Skip to content
Permalink
Browse files

Fix resolution from maven local.

  • Loading branch information...
SpencerPark committed Apr 13, 2019
1 parent b594580 commit ed1c8fe1dfca97021d22c50802aeaa507279449e
@@ -110,6 +110,7 @@ public MavenResolver(Consumer<String> addToClasspath) {
this.addToClasspath = addToClasspath;
this.repos = new LinkedList<>();
this.repos.add(CommonRepositories.mavenCentral());
this.repos.add(CommonRepositories.mavenLocal());
}

public void addRemoteRepo(String name, String url) {
@@ -205,13 +206,16 @@ private Ivy createDefaultIvyInstance(int verbosity) {
return ivy;
}

// TODO support multiple at once. This is necessary for conflict resolution with multiple overlapping dependencies.
// TODO support classpath resolution
public List<File> resolveMavenDependency(String canonical, Set<String> repos, int verbosity) throws IOException, ParseException {
ChainResolver rootResolver = this.searchAllReposResolver(repos);

Ivy ivy = this.createDefaultIvyInstance(verbosity);
IvySettings settings = ivy.getSettings();

settings.addResolver(rootResolver);
rootResolver.setCheckmodified(true);
settings.setDefaultResolver(rootResolver.getName());

ivy.getLoggerEngine().info("Searching for dependencies in: " + rootResolver.getResolvers());
@@ -1,6 +1,5 @@
package io.github.spencerpark.ijava.magics.dependencies;

import org.apache.ivy.plugins.repository.file.FileRepository;
import org.apache.ivy.plugins.resolver.DependencyResolver;
import org.apache.ivy.plugins.resolver.IBiblioResolver;
import org.xml.sax.SAXException;
@@ -9,6 +8,10 @@
import java.nio.file.Path;

public class CommonRepositories {
protected static final String MAVEN_PATTERN_PREFIX = "[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier])";
protected static final String MAVEN_ARTIFACT_PATTERN = MAVEN_PATTERN_PREFIX + ".[ext]";
protected static final String MAVEN_POM_PATTERN = MAVEN_PATTERN_PREFIX + ".pom";

public static DependencyResolver maven(String name, String urlRaw) {
IBiblioResolver resolver = new IBiblioResolver();
resolver.setM2compatible(true);
@@ -22,7 +25,7 @@ public static DependencyResolver maven(String name, String urlRaw) {
}

public static DependencyResolver mavenCentral() {
return CommonRepositories.maven("maven-central","https://repo.maven.apache.org/maven2/");
return CommonRepositories.maven("maven-central", "https://repo.maven.apache.org/maven2/");
}

public static DependencyResolver jcenter() {
@@ -34,6 +37,7 @@ public static DependencyResolver mavenLocal() {
resolver.setM2compatible(true);
resolver.setUseMavenMetadata(true);
resolver.setUsepoms(true);

resolver.setName("maven-local");

Path localRepoPath;
@@ -45,11 +49,7 @@ public static DependencyResolver mavenLocal() {
throw new RuntimeException("Error parsing maven settings. " + e.getLocalizedMessage(), e);
}

FileRepository mavenLocalRepo = new FileRepository();
mavenLocalRepo.setLocal(true);
mavenLocalRepo.setBaseDir(localRepoPath.toFile());

resolver.setRepository(mavenLocalRepo);
resolver.setRoot("file:///" + localRepoPath.toString());

return resolver;
}
@@ -111,6 +111,9 @@ private Path getDefaultLocalRepoPath() {
}

private Path readConfiguredLocalRepositoryPath(Path settingsXmlPath) throws IOException, SAXException {
if (!Files.isRegularFile(settingsXmlPath))
return null;

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setValidating(false);

0 comments on commit ed1c8fe

Please sign in to comment.
You can’t perform that action at this time.