Utility per il download di manufatti esperto di pronti contro termine senza MVN / pon [chiusa]

StackOverflow https://stackoverflow.com/questions/884808

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?

È stato utile?

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:

  1. Basta inviare un link che punta sul manufatto nel repository e li usano loro browser.
  2. Installare e utilizzare wget (wget http://path/to/artifact.extension).
  3. mvn dependency:get (richiede mvn ma non richiedono un pom.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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top