3

当我为我的项目运行集成测试时,它试图在一个被传递的 repo 中搜索,我需要等待超时。我像这样将那个回购列入黑名单。

   <repository>
        <id>seacrh-snapshots</id>
        <name>Exodus Snapshot Repository</name>
        <url>http://repo URL/</url>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
   </repository>

但是当我运行 IT 测试时,它仍然在拉这个 repo:

Downloading: URL repo/maven-metadata.xml

还有什么需要改变的吗?

4

2 回答 2

3

我强烈建议使用 Maven 存储库管理器,例如 Nexus。它将帮助您使用 Maven 获得稳定且可重复的构建。您可以在那里禁用存储库(或者 Nexus 也可以为您处理此问题)。

http://www.sonatype.com/books/nexus-book/reference/maven-sect-single-group.html

http://maven.apache.org/repository-management.html

于 2013-03-18T17:39:24.023 回答
3

通常,当 maven 运行时,它会按以下顺序获取工件

  1. 它检查您的本地 .m2/repositories 文件夹
  2. 如果它找不到工件,那么它会读取您的 pom / parent pom/ super Pom / user level setting.xml/ global setting.xml - 为了找到外部存储库来下载工件,通常这些 repo 要么直接来自互联网(如预先配置的默认 maven 存储库)或本地私有 repo 管理器(如 nexus、Artifactory)。
  3. Maven 将按照声明的顺序执行 repo。

首先,检查您的项目有效-pom 是否没有其他任何东西覆盖您的配置。在终端中通过在项目根目录上键入 mvn help:effective-pom 或在你的 pom 的 eclipse“有效 pom”视图中轻松地输入。

否则,考虑安装本地存储库管理器是一个很好的用例,因为每次运行 maven 时都不需要从外部获取第三方依赖项。我会推荐 Artifactory 比 nexus 好得多。

于 2013-03-18T23:14:59.343 回答