Sto scrivendo un'applicazione che richiede il download di un jar in base al gruppo di strumenti/idtifactid/versione.Come scaricare un jar usando Maven in modo programmatico
Attualmente iniziare con
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();
}
}
Quindi, dato l'URL del POM, ora ho l'oggetto Maven modello che lo rappresenta. Questo sembra funzionare bene.
Quello che vorrei fare sapere è due cose:
- trovare l'URL del manufatto vaso che il modello rappresenta nel repository Maven che il plugin Maven userebbe
- dato il modello, trovare il file che rappresenta il vaso nel repository locale
ho già soluzioni di scarsa qualità: vado a mvnrepository.com manualmente codifica l'url, e io uso ~/.m2/repository come prefisso per il file. Posso ovviamente migliorare questa soluzione, ma finirò per duplicare malamente il codice che è ben testato e ben utilizzato nella base di codice Maven.
Mi piacerebbe davvero sapere come farlo usando le lezioni di maven.
Ho fatto un bel po 'di ricerca su google, ma la cosa divertente di cercare qualsiasi cosa su maven e jars (anche su stackoverflow) è che trovo molte soluzioni su come usare Maven, piuttosto che su come codificare usando le classi di esperti.
Grazie per l'aiuto
Maven download in ogni vaso file che sono specificati nel suo pom.xml. –
dai anche un'occhiata a [jcabi-aether] (http://www.jcabi.com/jcabi-aether/), che può aiutare a farlo più facilmente e in meno linea di codice – yegor256