Piszę aplikację, która wymaga ode mnie pobrania słoika podanego przez mavens groupid/artifactid/version.W jaki sposób mogę pobrać słoik za pomocą programisty programistycznie
Obecnie zacząć
public Model pomToModel(String pomUrl) throws Exception {
URL url = new URL(pomUrl);
InputStream stream = url.openStream();
try {
Model model = new MavenXpp3Reader().read(stream);
return model;
} finally {
stream.close();
}
}
Więc biorąc pod uwagę url POM, Mam teraz obiekt Maven model reprezentujący go. To wydaje się działać dobrze.
Co chciałbym zrobić wiedzieć dwie rzeczy:
- znaleźć adres URL artefaktu słoik, że model reprezentuje w repozytorium maven, że plugin Maven byłoby wykorzystać
- dany model, znaleźć plik reprezentujący słoik w lokalnym repozytorium
mam już biednych jakości rozwiązań: idę do mvnrepository.com ręcznego kodowania URL, i używam ~/.m2/repozytorium jako przedrostek dla pliku. Mogę oczywiście ulepszyć to rozwiązanie, ale skończę słabo powielać kod, który jest dobrze przetestowany i dobrze wykorzystany w bazie kodu maven.
Naprawdę chciałbym wiedzieć, jak to zrobić, używając klas maven.
Zrobiłem sporo wyszukiwania google, ale zabawną rzeczą w wyszukiwaniu czegokolwiek na temat maven i słoików (nawet na stackoverflow) jest to, że znajduję wiele rozwiązań, jak używać maven, a nie jak kodować za pomocą klasy mavenów.
Dzięki za pomoc
Maven pobieranie wszystkich jar pliki określone w jego pliku pom.xml. –
przyjrzyj się także [jcabi-aether] (http://www.jcabi.com/jcabi-aether/), co może pomóc w ułatwieniu tego i w mniejszej linii kodu – yegor256