【问题标题】:Wrong repository - Maven错误的存储库 - Maven
【发布时间】:2019-10-11 18:34:38
【问题描述】:

我正在尝试使用 Maven 在 Java 项目中配置一些依赖项:

<dependencies>
    <dependency>
        <groupId>com.rometools</groupId>
        <artifactId>rome</artifactId>
        <version>1.12.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.2</version>
    </dependency>
    <dependency>
        <groupId>com.basho.riak</groupId>
        <artifactId>riak-client</artifactId>
        <version>2.0.7</version>
    </dependency>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.5</version>
    </dependency>
</dependencies>

使用 IntellIJ 无法识别它们,因此我尝试从控制台运行它:

mvn clean install -U

它没有用,但我设法看到 Maven 正在我公司的私有 Nexus 中寻找依赖项(完全不相关)。所以,我猜我的 Maven 被配置为在这个 repo 中搜索而不是在公共的 repo 中搜索?如何更改此配置以正确获取此依赖项?

我使用的是 macOS 10.13.6。

【问题讨论】:

  • ~/.m2/settings.xml
  • @ThorbjørnRavnAndersen 好的,我看过了,你是对的,这是我公司的链接的 url,封装为 mirror。如何重置它以在默认仓库中查找依赖项?

标签: java maven dependencies pom.xml nexus


【解决方案1】:
$ mvn install -s /path/to/my-settings.xml

使用特定设置 xml 文件可以让您跳过公司的私人仓库。

【讨论】:

    【解决方案2】:

    Maven 的配置有点奇怪,这通常发生在~/.m2/settings.xml 中的所有内容上。不幸的是,XML 语言不够聪明,无法包含实际代码,这意味着您不能有条件地设置诸如“当我在公司网络上时使用此镜像”(您之前似乎已经这样做过)。

    不过,您现在可以将其重命名为 ~/.m2/company-settings.xml,这样 Maven 将使用其内置默认值,并在您再次需要当前功能时将其重命名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-17
      • 2012-06-05
      相关资源
      最近更新 更多