问题描述
昨天晚上想用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
扩展知识
- maven的私服配置:http://my.oschina.net/liangbo/blog/195739
- 深入比较几种maven仓库的优先级:http://toozhao.com/2012/07/13/compare-priority-of-maven-repository/
- http://maven.apache.org/guides/mini/guide-mirror-settings.html
- Maven最佳实践--Maven仓库:http://juvenshun.iteye.com/blog/359256
- Maven仓库管理之Nexus:http://my.oschina.net/aiguozhe/blog/101537
其它需要注意的问题及推荐
- 尽量不要配置mirrorOf为*
- 私服的配置推荐用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作为Java项目管理和构建工具,其依赖管理的核心机制是通过仓库(Repository)来获取项目所需的依赖库。Maven默认使用中央仓库,但有时我们需要配置多个仓库,例如私有仓库,以提高依赖下载速度或...
本文将详细介绍如何配置Maven以使用Nexus作为本地中央仓库,以及涉及的主要配置文件`settings.xml`和`pom.xml`。 **一、Nexus简介** Nexus是Sonatype公司提供的一款开源的Maven仓库管理器,它能够作为Maven的代理...
在这个指南中,我们将详细介绍如何安装 Maven 3.3.9 并在 Spring Tool Suite (STS) 中配置 Maven。 **一、Maven 3.3.9 安装** 1. **下载 Maven**:首先,你需要从 Apache Maven 官方网站...
在使用Maven构建Web项目时,`pom.xml`配置文件是至关重要的。它是Maven项目的灵魂,定义了项目的依赖、构建过程、插件和其他元数据。本篇将深入探讨如何通过`pom.xml`配置文件来生成Web项目。 1. **项目基本设置** ...
- 对于某些特定的依赖,如Oracle JDBC驱动,可能需要手动下载并配置到项目中,因为这些依赖可能受限于版权问题而不被包含在公共Maven仓库中。 通过以上步骤,可以有效地配置和使用Maven来管理Java项目的构建和依赖...
** Maven 环境配置详解 ** Maven 是一个强大的项目管理和构建工具,广泛应用于Java开发领域。它通过提供统一的构建过程、依赖管理和项目信息管理,极大地简化了项目的构建和维护工作。本文将详细讲解如何配置 Maven...
要将自定义的JAR包部署到Nexus,可以在Maven的`pom.xml`中添加`distributionManagement`节点,指定目标Repository。然后使用`mvn deploy`命令进行部署。 6. **团队共享** 配置好Maven和Nexus后,团队成员只需在...
- **插件配置**:在 `<build>` 节点下,通过 `<plugins>` 和 `<pluginManagement>` 配置构建过程中的插件及其参数。 - **构建配置**:设置 `<build>` 节点下的 `<resources>` 和 `<testResources>` 指定资源文件的...
1. 本地仓库配置:在MyEclipse中,找到Maven解压目录conf/settings.xml文件,取消<localRepository></localRepository>节点的注释,填入本地仓库路径。 2. 离线安装Maven插件:由于网络问题,可以选择离线安装方式...
在配置settings.xml文件时,我们需要添加localRepository节点,以指定maven本地库的路径。 在搭建好maven环境和集成maven到Myeclipse2013后,我们可以创建一个maven架构下的WEB工程。我们可以使用File-->New-->web...
在`pom.xml`文件中,你可以声明项目所依赖的外部库,Maven会自动下载这些依赖并管理它们。例如: ```xml <groupId>com.example</groupId> <artifactId>library <version>1.0.0 ``` ### 5. 更进一步 ...
本教程将详细介绍 Maven 的下载、安装、配置以及如何在实际开发中进行使用。 一、Maven 下载 1. 访问 Maven 官方网站:https://maven.apache.org/download.cgi 2. 在页面中找到最新稳定版的 Maven 发行版本,通常以...
1. **配置阿里云Maven镜像**:在用户的Maven配置文件`settings.xml`中添加阿里云的镜像仓库地址。通常,`settings.xml`位于`~/.m2/`目录下(Windows系统为 `%USERPROFILE%\.m2\`)。添加如下代码到`mirrors`节点: ...
安装完成后,接下来需要在Eclipse中配置Maven。 **步骤如下:** 1. **打开Eclipse并进入配置界面:** - 打开Eclipse IDE。 - 通过菜单栏选择`Window` -> `Preferences`(或按快捷键`Ctrl + ,`)。 2. **配置...
在 Maven 项目中,可以使用 distributionManagement 节点来部署 Jar 或 War 包到 Maven 私服仓库。例如,在 Pom.xml 文件中添加以下配置: <repository> <id>my-repo <url>...
- 在首选项设置窗口中,展开 “Maven” 节点,选择 “User Settings”。 **步骤三:设置Maven的全局配置文件settings.xml** - 在 “User Settings” 页面中,点击 “Global Settings” 按钮,选择Maven安装目录下的...
这里 `<id>` 对应于 POM 文件中 `<distributionManagement>` 节点内的 `<repository>` 和 `<snapshotRepository>` 中的 `<id>` 属性。 以上是关于 Maven 安装和配置的基本内容。通过上述步骤,可以顺利完成 Maven ...
- 配置 settings.xml 文件中的 mirrors 节点来指定代理服务器。 3. **持续集成工具 Continuum** - Maven 提供了 [Continuum](http://maven.apache.org/continuum/) 这样一个持续集成工具,它能够定时构建项目,...
3. **指定Maven路径**:在Maven的配置中,你需要指定Maven的安装路径,即之前设置的`M2_HOME`的值。 4. **配置本地仓库**:同样在IDEA的Maven设置中,设置本地仓库的路径,与之前在`settings.xml`中设置的一致。 *...