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:
parent
b5945808c6
commit
ed1c8fe1df
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);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user