English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Repository Maven

Nel gergo Maven, un deposito è una posizione (place).

Il deposito Maven è una libreria di terze parti di cui dipende il progetto, la posizione di questa libreria si chiama deposito.

In Maven, qualsiasi dipendenza, plugin o output di costruzione di un progetto può essere chiamato componente.

I depositi Maven ci aiutano a gestire i componenti (principalmente JAR), è il luogo dove si mettono tutti i file JAR (WAR, ZIP, POM, ecc.).

I depositi Maven hanno tre tipi:

  • locale(local)

  • centrale(central)

  • Remoto (remote)

Repository locale

Il repository locale di Maven non viene creato immediatamente dopo l'installazione. Viene creato la prima volta che si esegue un comando Maven.

Quando si esegue Maven, qualsiasi componente necessario da Maven viene direttamente recuperato dal repository locale. Se il repository locale non contiene il componente, Maven tenterà prima di scaricare il componente dal repository remoto al repository locale, e poi utilizzare il componente dal repository locale.

Per default, sia su Linux che su Windows, ogni utente ha una directory di repository chiamata .m2/repository/ nella propria directory utente.

Il repository locale di Maven non viene creato per default nella directory %USER_HOME%. Per modificare la posizione predefinita, definire un altro percorso nel file settings.xml di Maven nella directory %M2_HOME%\conf.

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 
   http://maven.apache.org/xsd/settings-1.0.0.xsd">
      <localRepository>C:/MyLocalRepository</localRepository>
</settings>

Quando si esegue un comando Maven, Maven scaricherà i file di dipendenza nel percorso specificato.

Repository centrale

Il repository centrale Maven è fornito dalla comunità Maven, contenente una vasta gamma di librerie comuni.

Il repository centrale contiene la maggior parte dei componenti open source Java popolari, nonché il codice sorgente, informazioni sugli autori, SCM, informazioni, informazioni sulle licenze, ecc. Di solito, i componenti necessari per i progetti Java semplici possono essere scaricati qui.

Concetti chiave del repository centrale:

  • Questo repository è gestito dalla comunità Maven.

  • Non è necessario configurare.

  • è necessario accedervi attraverso la rete.

Per esplorare i contenuti del repository centrale, la comunità Maven ha fornito un URL:http://search.maven.org/#browseUtilizzando questo repository, i sviluppatori possono cercare tutte le repository di codice disponibili.

Repository remoto

Se Maven non riesce a trovare i file di dipendenza anche nel repository centrale, interromperà il processo di costruzione e visualizzerà un messaggio di errore sulla console. Per evitare questo problema, Maven fornisce il concetto di repository remoto, che è un repository personalizzato dai sviluppatori, contenente le repository di codice necessarie o i file jar utilizzati in altri progetti.

Esempio, utilizzando il seguente pom.xml, Maven scaricherà i file dichiarati come dipendenze nel repository remoto.

<project xmlns="http://maven.apache.org/POM/4.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
   http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.companyname.projectgroup</groupId>
   <artifactId>project</artifactId>
   <version>1.0</version>
   <dependencies>
      <dependency>
         <groupId>com.companyname.common-lib</groupId>
         <artifactId>common-lib</artifactId>
         <version>1.0.0</version>
      </dependency>
   <dependencies>
   <repositories>
      <repository>
         <id>companyname.lib1</id>
         <url>http://download.companyname.org/maven2/lib1</url>
      </repository>
      <repository>
         <id>companyname.lib2</id>
         <url>http://download.companyname.org/maven2/lib2</url>
      </repository>
   </repositories>
</project>

Ordine di ricerca delle dipendenze Maven

Quando eseguiamo il comando di costruzione Maven, Maven inizia a cercare le librerie dipendenti nell'ordine seguente:

  • Passo 1 - Ricerca nel magazzino locale, se non si trova, eseguire il passo 2; se si trova, eseguire altre operazioni.

  • Passo 2 - Nella centrale di magazzino, se non si trova e ci sono uno o più magazzini remoti configurati, eseguire il passo 4; se si trova, scaricare localmente per riferimento futuro.

  • Passo 3 Se il repository remoto non è stato configurato, Maven si fermerà semplicemente e genererà un errore (impossibile trovare il file di dipendenza).

  • Passo 4 Cerca i file di dipendenza in uno o più repository remoti, se trovati, li scarica nel repository locale per futuri riferimenti, altrimenti Maven interromperà il processo e genererà un errore (impossibile trovare il file di dipendenza).

Repository阿里云(Aliyun) Maven

Il repository Maven è di default all'estero, l'uso in Cina potrebbe essere lento, possiamo sostituirlo con il repository阿里云.

Modifica il file settings.xml nella cartella conf del directory radice Maven, nel punto mirrors, aggiungi il seguente contenuto:

<mirrors>
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>
</mirrors>

Passo 2: Aggiungi il seguente contenuto al file pom.xml

<repositories>  
        <repository>  
            <id>alimaven</id>  
            <name>aliyun maven</name>  
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
            <releases>  
                <enabled>true</enabled>  
            </releases>  
            <snapshots>  
                <enabled>false</enabled>  
            </snapshots>  
        </repository>  
</repositories>