Vous trouverez ci-dessous l'erreur que j'obtiens généralement lorsque ma connexion Internet est faible lorsque je tente de créer une application Web avec maven.
Ma question est la suivante: pourquoi maven doit-il toujours télécharger à chaque fois que la même application a été créée plus tôt.
Quel pourrait être le problème dans ma configuration qui oblige maven à télécharger à chaque fois?
Voici une erreur que j'obtiens lorsque j'essaye de créer hors ligne:
[INFO] ------------------------------------------------------------------------
[INFO] Building mywebapp 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: https://raw.github.com/pagecrumb/mungo/mvn-repo/com/pagecrumb/mungo/0.0.1-SNAPSHOT/maven-metadata.xml
[WARNING] Could not transfer metadata com.mywebapp:mungo:0.0.1-SNAPSHOT/maven-metadata.xml
from/to mungo-mvn-repo (https://raw.github.com/pagecrumb/mungo/mvn-repo/): raw.github.com
[INFO]
[INFO] --- maven-war-plugin:2.1.1:war (default-cli) @ mywebapp ---
[INFO] Packaging webapp
[INFO] Assembling webapp [mywebapp] in [D:\workspace\web\target\mywebapp-1.0-SNAPSHOT]
[INFO] Processing war project
[INFO] Copying webapp resources [D:\workspace\web\src\main\webapp]
[INFO] Webapp assembled in [1237 msecs]
[INFO] Building war: D:\workspace\web\target\mywebapp-1.0-SNAPSHOT.war
[WARNING] Warning: selected war files include a WEB-INF/web.xml which will be ignored
(webxml attribute is missing from war task,
or ignoreWebxml attribute is specified as 'true')
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building com.mywebapp [com.mywebapp] 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-release-plugin/2.1/maven-release-plugin-2.1.pom
[WARNING] Failed to retrieve plugin descriptor for org.apache.maven.plugins:maven-release-plugin:2.1: Plugin org.apache.maven.plugins:maven-release-plugin:2.1 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-release-plugin:jar:2.1
Downloading: http://download.java.net/maven/2/org/apache/maven/plugins/maven-metadata.xml
Downloading: http://download.java.net/maven/2/org/codehaus/mojo/maven-metadata.xml
397/397 B
Downloaded: http://download.java.net/maven/2/org/codehaus/mojo/maven-metadata.xml (397 B at 0.0 KB/sec)
[WARNING] Failure to transfer org.apache.maven.plugins:maven-war-plugin/maven-metadata.xml from http://download.java.net/maven/2 was cached in the local repository, resolution will not be reattempted until the update interval of maven2-repository.dev.java.net has elapsed or updates are forced. Original error: Could not transfer metadata org.apache.maven.plugins:maven-war-plugin/maven-metadata.xml from/to maven2-repository.dev.java.net (http://download.java.net/maven/2): download.java.net
[INFO]
[INFO] --- maven-war-plugin:2.3:war (default-cli) @ mywebapp-build ---
[INFO] Packaging webapp
[INFO] Assembling webapp [mywebapp-build] in [D:\workspace\target\mywebapp-build-0.0.1-SNAPSHOT]
[INFO] Processing war project
[INFO] Webapp assembled in [15 msecs]
[INFO] Building war: D:\workspace\target\mywebapp-build-0.0.1-SNAPSHOT.war
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] mywebapp ..................................... SUCCESS [27.999s]
[INFO] com.mywebapp [com.mywebapp] ..................... FAILURE [1:00.406s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:41.409s
[INFO] Finished at: Tue May 07 22:13:38 SGT 2013
[INFO] Final Memory: 11M/28M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.3:war
(default-cli) on project mywebapp-build: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode)
java
maven
maven-3
maven-metadata
quarks
la source
la source
mvn clean install -o
-nsu
,--no-snapshot-updates
option avecmvn
Réponses:
Recherchez
settings.xml
l'<repositories>
élément dans votre (ou, éventuellement, le POM parent ou société parent de votre projet) . Cela ressemblera à quelque chose comme ci-dessous.Notez l'
<updatePolicy>
élément. L'exemple indique à Maven de contacter le référentiel distant (Nexus dans mon cas, Maven Central si vous n'utilisez pas votre propre référentiel distant) chaque fois que Maven a besoin de récupérer un artefact d'instantané pendant une compilation, en vérifiant s'il existe une copie plus récente. Les métadonnées sont nécessaires pour cela. S'il existe une copie plus récente, Maven la télécharge dans votre dépôt local.Dans l'exemple, pour les versions, la politique est de
daily
vérifier lors de votre première compilation de la journée.never
est également une option valide, comme décrit dans la documentation sur les paramètres Maven .Les plugins sont résolus séparément. Vous pouvez également configurer des référentiels pour ceux-ci, avec des politiques de mise à jour différentes si vous le souhaitez.
Quelqu'un d'autre a mentionné le
-o
option. Si vous utilisez cela, Maven s'exécute en mode «hors ligne». Il sait qu'il n'a qu'un dépôt local et qu'il ne contactera pas le dépôt distant pour actualiser les artefacts, quelles que soient les stratégies de mise à jour que vous utilisez.la source
-U
ou que l'artefact soit supprimé du dépôt local et doive donc être retéléchargé.Il est possible d'utiliser le drapeau
-o,--offline "Work offline"
pour éviter cela.Comme ça:
maven compile -o
la source
Je suppose que parce que vous n'avez pas spécifié la version du plugin, cela déclenche le téléchargement des métadonnées associées afin d'obtenir la dernière.
Sinon, avez-vous essayé de forcer l'utilisation du dépôt local en utilisant -o?
la source
version
élément à l'intérieur de l'plugin
élément, vous l'avez en effet configuré, si c'est le cas, je n'ai plus d'idées ... Bonne chancemaven-surefire-common
, que je n'ai pas spécifié?pluginManagement
sectionJe n'ai pas encore étudié, quand Maven fait quelle recherche, mais pour obtenir des constructions stables et reproductibles, je recommande fortement de ne pas accéder directement aux référentiels Maven mais d'utiliser un gestionnaire de référentiels Maven tel que Nexus.
Voici le tutoriel pour configurer votre fichier de paramètres:
http://books.sonatype.com/nexus-book/reference/maven-sect-single-group.html
http://maven.apache.org/repository-management.html
la source
Maven fait cela car votre dépendance est dans une version SNAPSHOT et maven n'a aucun moyen de détecter les modifications apportées à cette version de snapshot dans le référentiel. Libérez votre artefact et remplacez la version de pom.xml par cette version et maven ne récupérera plus le fichier de métadonnées.
la source