为什么Maven每次都会下载maven-metadata.xml?

当尝试使用maven构建Web应用程序时,当我的Internet连接处于连接状态时,通常会出现以下错误。

我的问题是,为什么在较早构建同一应用程序时,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)

回答:

在您settings.xml<repositories>元素(或项目的父级或公司父级POM)中查找该元素。它看起来像下面的样子。

<repositories>

<repository>

<id>central</id>

<url>http://gotoNexus</url>

<snapshots>

<enabled>true</enabled>

<updatePolicy>always</updatePolicy>

</snapshots>

<releases>

<enabled>true</enabled>

<updatePolicy>daily</updatePolicy>

</releases>

</repository>

</repositories>

注意<updatePolicy>元素。该示例告诉Maven每当Maven在构建期间需要检索快照工件时,就联系远程仓库(在本例中为Nexus,如果您不使用自己的远程仓库,则为Nexus),以检查是否有更新的副本。为此需要元数据。如果有较新的副本,Maven会将其下载到本地存储库中。

在此示例中,对于发行版,策略是daily这样的,因此它将在当天的首次构建期间进行检查。 never也是有效的选项,如Maven settings

docs中所述。

插件单独解决。您可能还为它们配置了存储库,如果需要,可以使用不同的更新策略。

<pluginRepositories>

<pluginRepository>

<id>central</id>

<url>http://gotoNexus</url>

<snapshots>

<enabled>true</enabled>

<updatePolicy>daily</updatePolicy>

</snapshots>

<releases>

<enabled>true</enabled>

<updatePolicy>never</updatePolicy>

</releases>

</pluginRepository>

</pluginRepositories>

有人提到了该-o选项。如果使用该选项,则Maven将以“脱机”模式运行。它知道它只有一个本地存储库,无论您使用哪种更新策略,它都不会与远程存储库联系以刷新工件。

以上是 为什么Maven每次都会下载maven-metadata.xml? 的全部内容, 来源链接: utcz.com/qa/425242.html

回到顶部