当前位置: 首页 > 面试题库 >

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

戴建义
2023-03-14
问题内容

当尝试使用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项目中删除所有易受攻击的log4j依赖项。 我在pom中使用log4j 2.16依赖项,并在其他依赖项中添加了log4j和sl4j的排除项。 尽管如此,每当我运行maven包目标时,它都会下载log4j 1.2.12 jar。 我甚至运行了mvn dependency:tree命令,它只显示log4j 2.16。 下载log4j 1.2.12 jar的原因是什么?

  • 我使用的是 Maven 3.1.1。在我的一个项目中,我引用了我的另一个项目...... 以上依赖于我的其他几个项目。但是,当我运行“mvn 全新安装”时,Maven 会尝试下载这些项目,而不仅仅是使用本地存储库中的内容。如何让 Maven 仅在我的本地存储库中不存在内容时才下载这些内容?这是我所看到的输出...

  • 我有一个JavaScript应用程序,我正在与webpack捆绑。根据文档,我正在使用以下命令开始绑定: 每次我得到这个输出: 我已验证我的npx正在查看的目录。有人能想到为什么每次都在下载网页吗?完成此步骤最多需要7秒,这会减慢我的构建速度。

  • 以下是我问题的相关档案。 日志文件摘录,包括应用程序的启动: 每次调用servlet时出现的日志文件摘录: ---根据@Boris的信息,我稍微修改了一下servlet。我的上下文已经加载,我只需要访问它:

  • 下载Maven 请先到钉盘 - 网聚宝开发指南-资源 - MacOS 下载 apache-maven-3.3.9.zip包,并在本地解压。 Maven 安装与配置 (MacOS) 将解压后的安装包放入本地合适的地方。 打开 终端 工具,使用以下命令,进入 vim 编辑模式 编辑环境变量 vi ~/.bash_profile 写入 环境变量(将下面的路径换成你存放Maven解压包的路径) expor

  • 我在eclipse Juno中创建了maven项目(m2eclipse)。项目依赖于Hive0.10和hadoop 0.23.5。 Maven解决了所有的依赖关系,编译一切正常。现在我想看看javadoc和源代码,所以我点击mave->download javadoc,但没有结果。 M2E-lastupdated.properties文件包含如下所示行: 我甚至没有看到javadoc丢失的错误。