Utility per il download di manufatti esperto di pronti contro termine senza MVN / pon [chiusa]
-
23-08-2019 - |
Domanda
C'è un cliente che non è esperto di MVN (i binari inclusi con la distribuzione Maven) potrei usare per abbattere un manufatto da un repository Maven senza utilizzare un pom? Mi piacerebbe usare un repository Maven come il pronti contro termine per il nostro team ops per raccogliere costruisce (tra cui istantanee di costruisce), ma io non voglio che abbiano a pasticciare con la scrittura pon e le dipendenze che dichiarano in loro. Idealmente, sto cercando solo un client CLI che ho potuto solo passare un URL pronti contro termine e le coordinate e scaricare un dato artefatto. Esiste una cosa del genere esiste o sono io meglio scrivere uno script una tantum per questo?
Soluzione
Usa Nexus. Esso fornisce un'interfaccia web che altre squadre possono utilizzare per scaricare gli artefatti. http://nexus.sonatype.org/
Altri suggerimenti
Vedo 3 semplici opzioni:
- Basta inviare un link che punta sul manufatto nel repository e li usano loro browser.
- Installare e utilizzare
wget
(wget http://path/to/artifact.extension
). -
mvn dependency:get
(richiedemvn
ma non richiedono unpom.xml
, vedere questa risposta per maggiori dettagli).
Utilizza il Maven embedder . Più precisamente, utilizzare la funzionalità all'interno del embedder Maven per la risoluzione e il download di vasetti. Anche se si sta cercando di scrivere solo un semplice CLI, la struttura repository non è complessa e si potrebbe facilmente scrivere uno script che prende un esperto di pronti contro termine URL, ID artefatto, ID di gruppo e la versione per generare l'URL completo al barattolo.
Questo è come lo facciamo in jcabi-etere :
final File repo = this.session.getLocalRepository().getBasedir();
final Collection<Artifact> deps = new Aether(this.getProject(), repo).resolve(
new DefaultArtifact("junit", "junit-dep", "", "jar", "4.10"),
JavaScopes.RUNTIME
);
Tutto ciò che serve per fornire a questo lib è 1) un elenco dei repository remoti, 2) posizione di un repository locale e 3) coordinate Maven del manufatto. La libreria utilizza Apache Aether da Sonatype.
Bene tecnicamente il repository si accede tramite HTTP, quindi data la posizione repository, artefatto e coordinate, dovrebbe essere solo possibile dare il tuo Ops squadra un URL al manufatto che possono colpire in qualsiasi browser.
Pensate a Pax URL che consente di utilizzare gli URL semplici per fare riferimento artefatti Maven in questo modo:
mvn:groupId/artifactId/version
PAX URL del sito web per ulteriori informazioni (MVN Protocol Handler).
Toni