Maven报错:maven-archetype-webapp:RELEASE from any of the configured repositories

本文介绍了解决在STS(eclipse)环境下创建Maven项目时出现的错误问题,通过修改settings.xml文件中的mirror配置,指向ibiblio镜像源,成功解决了因默认镜像源文件不全导致的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天学习maven,在控制台下新建maven项目没有问题,但是在STS(eclipse)下创建maven项目老是报错,郁闷死了:

----------------------------------------------------

错误信息:Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webapp:RELEASE from any of the configured repositories.
Could not resolve artifact
Failed to resolve version for org.apache.maven.archetypes:maven-archetype-webapp:pom:RELEASE: Could not find metadata org.apache.maven.archetypes:maven-archetype-webapp/maven-metadata.xml in local (F:\maven\repository)
Failed to resolve version for org.apache.maven.archetypes:maven-archetype-webapp:pom:RELEASE: Could not find metadata org.apache.maven.archetypes:maven-archetype-webapp/maven-metadata.xml in local (F:\maven\repository)

----------------------------------------------------

遇到问题,就是baidu/google查找解决方法,可惜网上很多人提到的方法试了都不行,郁闷了好几个小时,最后找到问题原因如下:

 

以上报错的原因是:在settings.xml 文件中 mirrors出了问题。默认maven3.1.0安装目录下的conf目录下的setting.xml配置文件中的mirrors配置是这样的:

 

  <mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
  </mirrors>

 

我也不是很清楚为什么就是不行(猜测是maven默认的internet仓库里的文件不全,所以就添加了大家用得最多的maven的internet仓库之一:lbiblio,基本所有的开源的框架的jar文件都有提供),然后在setting.xml配置文件上面我添加了一个新的mirror,添加后如下:

 

  <mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
     <!--以下是新增加上去的-->
     <mirror> 
        <id>ibiblio.org</id> 
        <name>ibiblio Mirror of http://repo1.maven.org/maven2/</name> 
        <url>http://mirrors.ibiblio.org/pub/mirrors/maven2</url> 
        <mirrorOf>central</mirrorOf> 
     </mirror> 

  </mirrors>

 

 

就只是修改了setting.xml配置文件上的这个地方,然后在控制台下我重新输入:

mvn help:system

回车,就可以看到重新下载了好多的jar包文件。

等下载完成后,再在eclipse新建maven项目就正常了。

 

### 如何选择合适的Maven Archetype 在创建新的Maven模块时,选择适合的Archetype取决于目标项目的性质以及所需的功能。以下是关于`maven-archetype-quickstart`和`maven-archetype-webapp`的具体分析: #### 1. **maven-archetype-quickstart** 这是一个最基本的Maven项目模板,适用于普通的Java应用程序开发[^1]。其主要特点如下: - 自动生成的基础结构包括一个简单的Java类 (`App.java`) 和对应的单元测试类 (`AppTest.java`)。 - `pom.xml` 文件中默认包含了JUnit依赖项,便于编写和运行单元测试。 - 不涉及任何特定的应用场景(如Web应用),仅用于构建标准的Java程序。 对于那些不需要复杂框架支持或者仅仅是学习目的的小型实验性项目来说,这是非常理想的选择。 ```xml <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> ``` #### 2. **maven-archetype-webapp** 此模板专为基于Servlet/JSP技术栈的传统Web应用程序设计而准备[^5]。它的特性有: - 自动设置好了一个WAR打包形式(`packaging=war`) 的POM文件; - 提供了初始页面(index.jsp),并设置了必要的部署描述符(web.xml)路径; - 结构清晰地区分出了资源文件夹(src/main/webapp/)与其他源码区域。 如果计划建立的是面向互联网的服务端解决方案,则应该优先考虑采用此类别的原型作为起点。 ```java // Example of a simple servlet that could be part of the web application. @WebServlet("/hello") public class HelloServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { response.getWriter().println("Hello from Servlet!"); } } ``` ### 总结建议 - 如果您打算启动一个新的纯Java控制台程序或者是想探索基础概念的学习环境,请选用`maven-archetype-quickstart`. - 对于旨在搭建网站服务或者其他任何形式上的网络交互平台而言,则推荐利用`maven-archetype-webapp`. 通过以上对比可以看出两者之间的显著差异在于用途范围的不同:前者更偏向简单实用性的桌面级操作;后者则针对复杂的服务器端逻辑处理需求进行了优化调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值