1
0
mirror of https://github.com/SpencerPark/IJava.git synced 2025-04-18 12:26:09 +00:00

Fix resolution from maven local.

This commit is contained in:
SpencerPark 2019-04-13 14:58:13 -04:00
parent b5945808c6
commit ed1c8fe1df
3 changed files with 14 additions and 7 deletions
src/main/java/io/github/spencerpark/ijava

@ -110,6 +110,7 @@ public class MavenResolver {
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,6 +206,8 @@ public class MavenResolver {
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);
@ -212,6 +215,7 @@ public class MavenResolver {
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.io.IOException;
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 class CommonRepositories {
}
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 class CommonRepositories {
resolver.setM2compatible(true);
resolver.setUseMavenMetadata(true);
resolver.setUsepoms(true);
resolver.setName("maven-local");
Path localRepoPath;
@ -45,11 +49,7 @@ public class CommonRepositories {
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 @@ public class Maven {
}
private Path readConfiguredLocalRepositoryPath(Path settingsXmlPath) throws IOException, SAXException {
if (!Files.isRegularFile(settingsXmlPath))
return null;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setValidating(false);