L'elemento <scope>
può assumere 6 valori: compilare, disponibile, runtime, prova, sistema e importazione.
Questo ambito viene utilizzato per limitare la transitività di una dipendenza e anche per influenzare il percorso di classe utilizzato per varie attività di compilazione.
compilare
Questo è l'ambito predefinito, utilizzato se non viene specificato. Le dipendenze di compilazione sono disponibili in tutti i percorsi di classe di un progetto. Inoltre, tali dipendenze vengono propagate a progetti dipendenti.
fornito
Questo è molto simile in fase di compilazione, ma indica che ci si aspetta il JDK o un contenitore per fornire la dipendenza in fase di esecuzione. Ad esempio, quando si crea un'applicazione Web per Java Enterprise Edition, si imposta la dipendenza sull'API servlet e le API Java EE correlate all'ambito fornito poiché il contenitore Web fornisce tali classi. Questo ambito è disponibile solo sul percorso di classe di compilazione e test e non è transitivo.
runtime
di tale scopo indica che la dipendenza non è necessaria per la compilazione, ma è per l'esecuzione. È nel runtime e verifica i percorsi di classe, ma non il classpath di compilazione.
prova
di tale scopo indica che la dipendenza non è necessaria per il normale utilizzo dell'applicazione, ed è disponibile solo per le fasi di test compilazione ed esecuzione.
sistema
Questo ambito è simile a condizione se non che è necessario fornire il JAR, che contiene in modo esplicito. L'artefatto è sempre disponibile e non è cercato in un repository.
importazione (disponibile solo in Maven 2.0.9 o successiva)
di tale scopo viene utilizzato solo su una dipendenza di tipo pom nella sezione. Indica che il POM specificato deve essere sostituito con le dipendenze nella sezione di quella POM. Dal momento che vengono sostituiti, le dipendenze con un ambito di importazione in realtà non partecipano a limitare la transitività di una dipendenza.
Per rispondere alla seconda parte della tua domanda:
Come possiamo usarlo per l'esecuzione di test?
Si noti che l'ambito test
consente di utilizzare le dipendenze solo per la fase di test.
Leggere il documentation per tutti i dettagli.
è tutto molto ben spiegato nella documentazione: http://maven.apache.org/guides /introduction/introduction-to-dependency-mechanism.html#Dependency_Scope –
possibile duplicato di [Comprendere le dipendenze Compile- vs Run-time] (http://stackoverflow.com/questions/7070570/understanding-compile-vs-run-time -dipendenze) – arghtype