Ниже приведена ошибка, которую я обычно получаю, когда мое интернет-соединение не работает при попытке создать веб-приложение с помощью maven.
Мой вопрос в том, почему maven всегда нужно загружать каждый раз, когда одно и то же приложение было создано ранее.
Что может быть не так в моей конфигурации, что заставляет maven загружаться каждый раз?
Ниже приведена ошибка, которую я получаю, когда пытаюсь собрать оффлайн:
[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
кварки
источник
источник
mvn clean install -o
-nsu
,--no-snapshot-updates
вариант сmvn
Ответы:
Найдите элемент в своем
settings.xml
(или, возможно, родительском или корпоративном POM вашего проекта)<repositories>
. Это будет выглядеть примерно так, как показано ниже.Обратите внимание на
<updatePolicy>
элемент. Пример сообщает Maven о необходимости связываться с удаленным репозиторием (Nexus в моем случае, Maven Central, если вы не используете собственное удаленное репо) каждый раз, когда Maven необходимо получить артефакт моментального снимка во время сборки, проверяя, есть ли более новая копия. Для этого требуются метаданные. Если есть более новая копия, Maven загружает ее в ваше локальное хранилище.В примере для выпусков политика такова,
daily
что они будут проверяться во время вашей первой сборки за день.never
также допустимый вариант, как описано в документации по настройкам Maven .Плагины решаются отдельно. Для них также могут быть настроены репозитории с разными политиками обновления, если это необходимо.
Кто-то еще упомянул об этом
-o
варианте. Если вы его используете, Maven будет работать в автономном режиме. Он знает, что у него есть только локальное репо, и он не будет связываться с удаленным репо для обновления артефактов независимо от того, какие политики обновления вы используете.источник
-U
или артефакт не будет удален из локального репо и, следовательно, его не нужно будет повторно загрузить.Возможно использование флага,
-o,--offline "Work offline"
чтобы предотвратить это.Как это:
maven compile -o
источник
Я полагаю, потому что вы не указали версию плагина, поэтому он запускает загрузку связанных метаданных, чтобы получить последнюю.
В противном случае вы пытались принудительно использовать локальное репо с помощью -o?
источник
version
элемент внутриplugin
элемента, то вы действительно настроили его, если так, у меня нет идей ... Удачиmaven-surefire-common
, который я не указал?pluginManagement
разделЯ еще не изучал, когда Maven выполняет этот поиск, но для получения стабильных и воспроизводимых сборок я настоятельно рекомендую не обращаться к Maven Respositories напрямую, а использовать Maven Repository Manager, такой как Nexus.
Вот руководство по настройке файла настроек:
http://books.sonatype.com/nexus-book/reference/maven-sect-single-group.html
http://maven.apache.org/repository-management.html
источник
Maven делает это, потому что ваша зависимость находится в версии SNAPSHOT, и maven не может обнаружить какие-либо изменения, внесенные в эту версию моментального снимка в репозитории. Освободите свой артефакт и измените версию в pom.xml на эту версию, и maven больше не будет получать файл метаданных.
источник