`
betakoli
  • 浏览: 168728 次
社区版块
存档分类
最新评论

maven pom中的repository节点配置没有起作用

阅读更多

问题描述

昨天晚上想用spring boot快速搭建一个web开发的项目,就打开spring boot的doc,按照说明开始尝试。没想到出师未捷身先死,第一步就挂了。
以下是spring boot的配置文件,参考:http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#getting-started-first-application

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>myproject</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.3.2.BUILD-SNAPSHOT</version>
    </parent>

    <!-- Additional lines to be added here... -->

    <!-- (you don't need this if you are using a .RELEASE version) -->
    <repositories>
        <repository>
            <id>spring-snapshots</id>
            <url>http://repo.spring.io/snapshot</url>
            <snapshots><enabled>true</enabled></snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <url>http://repo.spring.io/milestone</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <url>http://repo.spring.io/snapshot</url>
        </pluginRepository>
        <pluginRepository>
            <id>spring-milestones</id>
            <url>http://repo.spring.io/milestone</url>
        </pluginRepository>
    </pluginRepositories>
</project>

然后开心的mvn package,就报错了。错误如下:

Non-resolvable parent POM: Could not find artifact org.springframework.boot:spring-boot-starter-parent:pom:1.3.2.BUILD-SNAPSHOT in ibiblio (http://mirrors.ibiblio.org/pub/mirrors/maven2/) and 'parent.relativePath' points at wrong local POM @ line 10, column 13 -> [Help 2]

百思不得其姐啊,maven 应该是先找当前项目的repository,然后找本地,然后再找私服,最后找中央仓库才对啊!明明在pom.xml里面配置了repository了啊!

解决方案

今天有点时间,自己分析了下然后Google了下,解决了这个问题。问题原因及方案如下:

我的maven中的setting.xml配置文件里面关于mirror部分的配置如下:

<mirror>
    <id>ibiblio</id>
    <mirrorOf>*</mirrorOf>
    <name>Human Readable Name for this Mirror.</name>
    <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
</mirror>

错误就出在mirrorOf节点了,如果写*会覆盖掉所有的,不管是哪个repository,最后都被这个镜像所mirror掉了,导致pom文件中的repository不生效了。
解决方案也很简单,把这个mirrorOf改掉就好了。具体修改建议参考maven官方说明:

* = everything
external:* = everything not on the localhost and not file based.
repo,repo1 = repo or repo1
*,!repo1 = everything except repo1

扩展知识

  1. maven的私服配置:http://my.oschina.net/liangbo/blog/195739
  2. 深入比较几种maven仓库的优先级:http://toozhao.com/2012/07/13/compare-priority-of-maven-repository/
  3. http://maven.apache.org/guides/mini/guide-mirror-settings.html
  4. Maven最佳实践--Maven仓库:http://juvenshun.iteye.com/blog/359256
  5. Maven仓库管理之Nexus:http://my.oschina.net/aiguozhe/blog/101537

其它需要注意的问题及推荐

  1. 尽量不要配置mirrorOf为*
  2. 私服的配置推荐用profile配置而不是mirror(毕竟mirror是镜像,私服其实是n个镜像及自己的开发库等的合集)
    <profile>
      <id>nexus</id>
      <repositories>
        <repository>
          <id>nexus</id>
          <url>http://192.168.163.xx:xx/nexus/content/groups/public/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>nexus</id>
          <url>http://192.168.163.xx:xx/nexus/content/groups/public/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>nexus</activeProfile>
  </activeProfiles>
分享到:
评论

相关推荐

    maven 配置多仓库

    在软件开发中,Maven作为Java项目管理和构建工具,其依赖管理的核心机制是通过仓库(Repository)来获取项目所需的依赖库。Maven默认使用中央仓库,但有时我们需要配置多个仓库,例如私有仓库,以提高依赖下载速度或...

    maven私服(nexus)配置(setting,pom.xml)

    本文将详细介绍如何配置Maven以使用Nexus作为本地中央仓库,以及涉及的主要配置文件`settings.xml`和`pom.xml`。 **一、Nexus简介** Nexus是Sonatype公司提供的一款开源的Maven仓库管理器,它能够作为Maven的代理...

    maven3.3.9个和maven配置步骤

    在这个指南中,我们将详细介绍如何安装 Maven 3.3.9 并在 Spring Tool Suite (STS) 中配置 Maven。 **一、Maven 3.3.9 安装** 1. **下载 Maven**:首先,你需要从 Apache Maven 官方网站...

    maven生成web项目时pom配置

    在使用Maven构建Web项目时,`pom.xml`配置文件是至关重要的。它是Maven项目的灵魂,定义了项目的依赖、构建过程、插件和其他元数据。本篇将深入探讨如何通过`pom.xml`配置文件来生成Web项目。 1. **项目基本设置** ...

    maven仓库配置详情

    - 对于某些特定的依赖,如Oracle JDBC驱动,可能需要手动下载并配置到项目中,因为这些依赖可能受限于版权问题而不被包含在公共Maven仓库中。 通过以上步骤,可以有效地配置和使用Maven来管理Java项目的构建和依赖...

    maven-3.2.3环境的配置的压缩包

    ** Maven 环境配置详解 ** Maven 是一个强大的项目管理和构建工具,广泛应用于Java开发领域。它通过提供统一的构建过程、依赖管理和项目信息管理,极大地简化了项目的构建和维护工作。本文将详细讲解如何配置 Maven...

    搭建Maven私服,并配置Nexus环境

    要将自定义的JAR包部署到Nexus,可以在Maven的`pom.xml`中添加`distributionManagement`节点,指定目标Repository。然后使用`mvn deploy`命令进行部署。 6. **团队共享** 配置好Maven和Nexus后,团队成员只需在...

    maven 3.6.1文件下次及配置修改

    - **插件配置**:在 `&lt;build&gt;` 节点下,通过 `&lt;plugins&gt;` 和 `&lt;pluginManagement&gt;` 配置构建过程中的插件及其参数。 - **构建配置**:设置 `&lt;build&gt;` 节点下的 `&lt;resources&gt;` 和 `&lt;testResources&gt;` 指定资源文件的...

    Maven配置图文教程

    1. 本地仓库配置:在MyEclipse中,找到Maven解压目录conf/settings.xml文件,取消&lt;localRepository&gt;&lt;/localRepository&gt;节点的注释,填入本地仓库路径。 2. 离线安装Maven插件:由于网络问题,可以选择离线安装方式...

    基于maven创建web项目

    在配置settings.xml文件时,我们需要添加localRepository节点,以指定maven本地库的路径。 在搭建好maven环境和集成maven到Myeclipse2013后,我们可以创建一个maven架构下的WEB工程。我们可以使用File--&gt;New--&gt;web...

    下载-配置maven的环境

    在`pom.xml`文件中,你可以声明项目所依赖的外部库,Maven会自动下载这些依赖并管理它们。例如: ```xml &lt;groupId&gt;com.example&lt;/groupId&gt; &lt;artifactId&gt;library &lt;version&gt;1.0.0 ``` ### 5. 更进一步 ...

    maven下载、安装、配置与使用教程.zip

    本教程将详细介绍 Maven 的下载、安装、配置以及如何在实际开发中进行使用。 一、Maven 下载 1. 访问 Maven 官方网站:https://maven.apache.org/download.cgi 2. 在页面中找到最新稳定版的 Maven 发行版本,通常以...

    阿里云Maven仓库.zip

    1. **配置阿里云Maven镜像**:在用户的Maven配置文件`settings.xml`中添加阿里云的镜像仓库地址。通常,`settings.xml`位于`~/.m2/`目录下(Windows系统为 `%USERPROFILE%\.m2\`)。添加如下代码到`mirrors`节点: ...

    Eclipse中Maven设置

    安装完成后,接下来需要在Eclipse中配置Maven。 **步骤如下:** 1. **打开Eclipse并进入配置界面:** - 打开Eclipse IDE。 - 通过菜单栏选择`Window` -&gt; `Preferences`(或按快捷键`Ctrl + ,`)。 2. **配置...

    linux下搭建内网maven私服

    在 Maven 项目中,可以使用 distributionManagement 节点来部署 Jar 或 War 包到 Maven 私服仓库。例如,在 Pom.xml 文件中添加以下配置: &lt;repository&gt; &lt;id&gt;my-repo &lt;url&gt;...

    Eclipse下安装maven

    - 在首选项设置窗口中,展开 “Maven” 节点,选择 “User Settings”。 **步骤三:设置Maven的全局配置文件settings.xml** - 在 “User Settings” 页面中,点击 “Global Settings” 按钮,选择Maven安装目录下的...

    maven 安装及配置讲解.docx

    这里 `&lt;id&gt;` 对应于 POM 文件中 `&lt;distributionManagement&gt;` 节点内的 `&lt;repository&gt;` 和 `&lt;snapshotRepository&gt;` 中的 `&lt;id&gt;` 属性。 以上是关于 Maven 安装和配置的基本内容。通过上述步骤,可以顺利完成 Maven ...

    maven使用文档,maven使用文档

    - 配置 settings.xml 文件中的 mirrors 节点来指定代理服务器。 3. **持续集成工具 Continuum** - Maven 提供了 [Continuum](http://maven.apache.org/continuum/) 这样一个持续集成工具,它能够定时构建项目,...

    IDEA搭建Maven教程

    3. **指定Maven路径**:在Maven的配置中,你需要指定Maven的安装路径,即之前设置的`M2_HOME`的值。 4. **配置本地仓库**:同样在IDEA的Maven设置中,设置本地仓库的路径,与之前在`settings.xml`中设置的一致。 *...

Global site tag (gtag.js) - Google Analytics