2010-09-03 13 views
6

Quando costruisco usando Maven, lo vedo controllare tutti i tipi di repository esterni per gli artefatti che solo la mia build locale dovrebbe produrre. Come posso dire che il gruppo com.myorg può essere trovato solo nel repository locale? Fondamentalmente voglio fare ciò che m2eclipse fa con la risoluzione dello spazio di lavoro ma sulla riga di comando.come impedire a Maven di controllare i depositi stranieri?

[INFO] snapshot com.myorg:core:0.0.1-SNAPSHOT: checking for updates from sun-jms 
[INFO] snapshot com.myorg:core:0.0.1-SNAPSHOT: checking for updates from hibernate 
[INFO] snapshot com.myorg:util:0.0.1-SNAPSHOT: checking for updates from sun-jms 
[INFO] snapshot com.myorg:util:0.0.1-SNAPSHOT: checking for updates from hibernate 
... 

Background: Ho un progetto Maven gerarchica (un livello). Voglio fare una compilazione completa quindi vado in cima e faccio mvn clean install.

  • com.myorg (genitore)
    • pom.xml
    • com.myorg.core
      • pom.xml
    • com.myorg.util
      • pom.xml

risposta

7

Se i repository remoti che si sta utilizzando sono repository di rilascio e non realtà non contengono qualsiasi istantanea, che è possibile disabilitare snapshot per loro e Maven non le controllare gli aggiornamenti snapshot. Ad esempio:

<repositories> 
    <repository> 
    <id>java.net</id> 
    <url>http://download.java.net/maven/2</url> 
    <snapshots> 
     <enabled>false</enabled> 
    </snapshots> 
    </repository> 
    ... 
</repositories> 
+0

genio puro; Avrei pensato che questo sarebbe stato un attributo che il repository avrebbe controllato, piuttosto che ciascun utente. – Justin

9

Si può provare con il passare l'opzione "-o" per Maven. -o attiva la "Modalità offline", in cui Maven non interroga gli archivi remoti per verificare la presenza di aggiornamenti o nuove risorse.

Non penso che sia possibile specificarlo in base alla dipendenza.

1

Per impostazione predefinita, maven verifica prima le dipendenze nel repository locale, quindi su repository esterni. L'unico caso che farà controllare maven repository esterni, è l'uso di istantanee.

Se si utilizzano le istantanee, è possibile utilizzare la marcatura <updatePolicy> per cambiare quando verrà controllato il repository esterno.

Se si vuole lavorare in modalità offline, è possibile impostare un'opzione offline temporanea sul comando mvn con l'opzione "-o", oppure è possibile impostarlo in "~/.m2/settings.xml" con <offline>true</offline>.


Prima di farlo, ricordatevi di usare il dependecy:go-offline mojo di scaricare il dipendenze una volta prima che realmente attivare la modalità non in linea.


Risorse:

Problemi correlati