问题描述

昨天晚上想用spring boot快速搭建一个web开发的项目,就打开spring boot的doc,按照说明开始尝试。没想到出师未捷身先死,第一步就挂了。

以下是spring boot的配置文件,参考:http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#getting-started-first-application

xml

4.0.0

<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>
然后开心的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部分的配置如下:
```xml```
<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个镜像及自己的开发库等的合集)

xml



nexus





nexus

http://192.168.163.xx:xx/nexus/content/groups/public/



true





true











nexus

http://192.168.163.xx:xx/nexus/content/groups/public/



true





true













nexus

maven pom中的repository节点配置没有起作用的更多相关文章

  1. Maven - pom中的<repository> <pluginRepositories>

    总结: <repository> 允许我们可以在POM中配置其它的远程仓库.这样做的原因有很多,比如你有一个局域网的远程仓库,使用该仓库能大大提高下载速度,继而提高构建速度,也有可能你依赖 ...

  2. maven pom文件简单模板和配置详解

    https://blog.csdn.net/earbao/article/details/49924943 maven pom文件简单模板和配置详解

  3. (转)Maven POM中的各种scope的行为总结

    原地址:https://blog.csdn.net/cnweike/article/details/52221410 compile:默认的scope.任何定义在compile scope下的依赖将会 ...

  4. Maven POM中的各种scope的行为总结

    compile:默认的scope.任何定义在compile scope下的依赖将会在所有的class paths下可用.maven工程会将其打包到最终的artifact中.如果你构建一个WAR类型的a ...

  5. maven pom中 设置远程仓库url

    <repositories> <!--<repository>--> <!--<id>spring-snapshots</id>--& ...

  6. maven 依赖中scope标签的配置范围详解

    在创建Maven项目时,需要在pom.xml 文件中添加相应的依赖,其中有一个scope标签,该标签是设置该依赖范围 (maven项目包含三种classpath{编译classpath,测试class ...

  7. maven pom 中的 build——resources 标签 mybatis加载mapper类及.xml文件

    转: maven 理解 2017年12月18日 15:34:31 feicongcong 阅读数:5658   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn ...

  8. Maven pom中的 scope 详解

    Maven的一个哲学是惯例优于配置(Convention Over Configuration), Maven默认的依赖配置项中,scope的默认值是compile,项目中经常傻傻的分不清,直接默认了 ...

  9. Maven pom文件中dependency scope用法

    在Maven中依赖的域有:compile.provided.runtime.system.test.import 一.compile(默认) 当依赖的scope为compile的时候,那么当前这个依赖 ...

随机推荐

  1. iOS 有TabBar的VC界面push后隐藏TabBar的方法

    当一个UITabbarController管理多个UINavigationController的时候, 我们要从这每一个UINavigationController中push一个ViewControl ...

  2. Android 中 LayoutInflater 的使用

    一.LayoutInflater 的作用 我们一般使用 LayoutInflater 做一件事:View inflate(int resource, ViewGroup root); inflate( ...

  3. [资料分享]ACCESS2013 零基础到精通

    Microsoft Office Access是由微软发布的关系数据库管理系统.它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点,是 Microsoft O ...

  4. Laravel使用笔记 —— migration

    在使用 php artisan make:migration 创建migration时,可用 --path 指定创建migration文件的路径, 如果在执行的 php artisan migrate ...

  5. Jstack Jmap jstat

    jstack jmap jstat 代码,这里以这个为例怎样使用jstack诊断Java应用程序故障 public class DeadLock { public static void main(S ...

  6. mysql_connect() php7不支持,php5.5可以,是废弃函数

    天用了PHP7,发现和PHP5变化还挺大的,最大的就是MySQL的连接库变了. PHP5中使用mysql_connect()函数进行连接,但实际上,PHP5.5开始,MySQL就不推荐使用了,属于废弃 ...

  7. 头显HTC Vive北美直降100美元,中国区降价活动今日公布

    如果你现在想要购买一台VR头显,591ARVR资讯网www.591arvr.com的小编提醒大家可以等一等,在即将到来的年末促销中各种VR设备都将迎来大力度降价.目前北美市场的HTC Vive已经直降 ...

  8. Lession1 写在机器学习之前

    机器学习从学习方式上来讲,可以分为两类: 监督学习(Supervised Learning),简而言之就是“有标签”学习 无监督学习(Unsupervised Learning),简而言之就是“无标签 ...

  9. 【BZOJ3036】绿豆蛙的归宿 概率与期望

    最水的概率期望,推荐算法合集之<浅析竞赛中一类数学期望问题的解决方法> #include <iostream> #include <cstdio> using na ...

  10. Android -- PopupWindow(其中嵌套ListView 可以被点击)

    1. 效果图