Domanda

Ho un paio di domande su Maven migliori pratiche e Gestire i repository.

Nel mio ambiente, io non voglio uscire al repository Maven centrale, ma piuttosto memorizzare tutto in un archivio interno. Devo solo obbligare ogni utente ad inserire le informazioni nel file di settings.xml che disabilita utilizzando le istantanee o rilascia dal repository Maven o questo dovrebbe essere in un file POM?

Inoltre, mi piacerebbe avere gli utenti vanno tutti allo stesso repository aziendale. Nel caso queste informazioni repository essere messo in POM o in settings.xml? Se è in POM, come potrà Maven sapere per andare al repository in quanto ha bisogno di sapere già dove il repository è quello di ottenere il pom?

È stato utile?

Soluzione

In un progetto di grandi dimensioni, è meglio avere diversi repository.

  1. Il proxy società / cache memorizzerà vasetti donwloaded livello locale in modo che la società non diventi dipendente dalla disponibilità di siti esterni. Vi si accede come un repository normale, ma è un gateway per i repository pubblici.

  2. Il repository aziendale per librerie rilasciate è limitato, esso contiene le librerie interne. Si tratta di strutture che vengono "promossi" dai repository del progetto al repository aziendale, perché possono essere utili per tutti i progetti.

  3. repository di progetto contengono manufatti utilizzati dal progetto. Può contenere sub artefatti di progetto e così via. Ogni sviluppatore di un progetto dovrebbe essere in grado di pubblicare qualcosa qui.

dove si mettono le impostazioni è una questione di gusti. Ho messo queste cose nel settings.xml. Perché se l'indirizzo del repository interni cambiano si sarebbe altrimenti necessario modificare i progetti.

Altri suggerimenti

Primo passo : Installare nexus sul server della LAN. E 'eccellente - facile da installare (in realtà, solo un paio di minuti!) E solido. Abbiamo ~ 50 ingegneri e molti server CI sbattere su di esso tutto il giorno ed è stato stabile per molti mesi. Diciamo che è stato installato su un server chiamato "nexus.local" nel DNS.

Fase due : Copia il settings.xml da http://www.sonatype.com/books/nexus-book/reference/maven-sect-single-group.html , correggere il nome host, se necessario, si impegnano al vostro sistema di codice sorgente, e dire tutti gli sviluppatori di copiare nel loro ~ / .m2 / settings.xml.

Punto tre : Impostare pom.xml del progetto in modo corretto. Si vorrà un "POM genitore" che definisce una sezione "distributionManagement" che sembra qualcosa di simile:

  <distributionManagement>
    <snapshotRepository>
      <id>nexusSS</id>
      <name>Nexus Snapshot Repository</name>
      <url>http://nexus.local:8081/nexus/content/repositories/snapshots</url>
    </snapshotRepository>
    <repository>
      <id>nexusRelease</id>
      <name>Nexus Release Repository</name>
      <url>http://nexus.local:8081/nexus/content/repositories/releases</url>
    </repository>
  </distributionManagement>

Fase quattro : Attiva "mvn distribuire" - Andare alla UI Nexus (qualcosa come http: //nexus.local: 8081 / nexus ), fare clic su utenti, fai clic su "distribuzione", e dargli una password. Poi modifica tuo ~ / .m2 / settings.xml e aggiungere questo:

<settings>
  ...
  <servers>
    <server>
      <id>nexus</id>
      <username>deployment</username>
      <password>PASSWORD</password>
    </server>
  </servers>
</settings>

Controlla che funziona eseguendo "mvn distribuire", e che dovrebbe essere installata artefatti del vostro progetto in Nexus.

Punto cinque : Leggere questo eccellente documentazione per Maven: http://www.sonatype.com/products/maven/documentation/book-defguide

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