Maven pontile scaricare le dipendenze
-
24-09-2019 - |
Domanda
Perché ogni volta che faccio "molo mvn: eseguire", Maven Prova a scaricare dei dipendenze (Apache POI e vasi ojdbc)? Come posso disabilitare questa?
[INFO] Scanning for projects..
[INFO] Searching repository for plugin with prefix: 'jetty'.
[INFO] ------------------------------------------------------------------------
[INFO] Building infolitReport
[INFO] task-segment: [jetty:run]
[INFO] ------------------------------------------------------------------------
[INFO] Preparing jetty:run
Downloading: http://repository.springsource.com/maven/bundles/release/org/apache/poi/com.springsource.org.apache.poi/3.6/com.springsource.org.apache.poi-3.6.pom
Downloading: http://repository.springsource.com/maven/bundles/external/org/apache/poi/com.springsource.org.apache.poi/3.6/com.springsource.org.apache.poi-3.6.pom
Downloading: http://repository.springsource.com/maven/bundles/milestone/org/apache/poi/com.springsource.org.apache.poi/3.6/com.springsource.org.apache.poi-3.6.pom
Downloading: http://repository.springsource.com/maven/bundles/snapshot/org/apache/poi/com.springsource.org.apache.poi/3.6/com.springsource.org.apache.poi-3.6.pom
Downloading: http://repo1.maven.org/maven2/org/apache/poi/com.springsource.org.apache.poi/3.6/com.springsource.org.apache.poi-3.6.pom
Downloading: http://repository.springsource.com/maven/bundles/release/com/oracle/ojdbc14/10.2.0.2/ojdbc14-10.2.0.2.pom
Downloading: http://repository.springsource.com/maven/bundles/external/com/oracle/ojdbc14/10.2.0.2/ojdbc14-10.2.0.2.pom
Downloading: http://repository.springsource.com/maven/bundles/milestone/com/oracle/ojdbc14/10.2.0.2/ojdbc14-10.2.0.2.pom
Downloading: http://repository.springsource.com/maven/bundles/snapshot/com/oracle/ojdbc14/10.2.0.2/ojdbc14-10.2.0.2.pom
Downloading: http://repo1.maven.org/maven2/com/oracle/ojdbc14/10.2.0.2/ojdbc14-10.2.0.2.pom
[INFO] [aspectj:compile {execution: default}]
Soluzione
Come spiegato nel capitolo 3.5.5. Dipendenza Gestione di Maven :
Una dipendenza in Maven non è solo un file JAR; si tratta di un file POM che, a sua volta, può dichiarare dipendenze da altri artefatti. Queste dipendenze di dipendenze sono chiamati dipendenze transitive, e sono rese possibili dal fatto che i negozi repository Maven più di un semplice bytecode; memorizza i metadati relativi manufatti.
Così, quando Maven scarica una dipendenza JAR, non solo scaricare un JAR, ma anche il file POM. Qui, Maven cerca di scaricare loro, ma non esistono (esistono solo i file jar). Quindi Maven non li scriverà nel repository locale e cerca di nuovo la prossima volta.
Ci sono 4 possibilità:
- Utilizzare manufatti buon cittadino con i file POM (o chiedere al responsabile per risolvere il problema).
- Usa un repository manager e creare e caricare i file POM.
- Crea i file POM nel repository locale (per esempio usando
install:install-file
). - In diretta con esso (sigh) ed eseguire
mvn
non in linea con l'opzione-o
per renderlo meno doloroso.
Altri suggerimenti
perché si vuole per fermarlo? è possibile eseguire senza scaricare le dipendenze? se si vuole ancora farlo chk questo fuori
http://maven.apache.org /plugins/maven-resources-plugin/examples/include-exclude.html
Guardate la exlude tag
In sostanza, le dipendenze verranno scaricati la prima volta quando si esegue il comando, ma alcuni dipendenze potrebbero aver bisogno di confrontare le sue versioni e cercare di ottenere quelle più up-to-date per voi nella vostra prossima fase di esecuzione.
Se non ha sempre una connessione internet o semplicemente si vuole breve il vostro tempo di costruzione, è possibile aggiungere il parametro -o
quali mezzi non in linea per eseguire, ad esempio mvn jetty:run -o
Esempio di risposta di Pascal Thivent
Crea i file POM nel repository locale (ad esempio utilizzando
install:install-file
)
mvn install:install-file -DgroupId=org.apache.commons -DartifactId=codec -Dversion=1.3 -Dpackaging=jar -Dfile=lib/commons-codec-1.3.jar -DgeneratePom=true
mvn install:install-file -DgroupId=org.apache.commons -DartifactId=httpclient -Dversion=3.1 -Dpackaging=jar -Dfile=lib/commons-httpclient-3.1.jar -DgeneratePom=true
mvn install:install-file -DgroupId=org.apache.commons -DartifactId=logging -Dversion=1.1 -Dpackaging=jar -Dfile=lib/commons-logging-1.1.jar -DgeneratePom=true