【问题标题】:How to force Maven to ignore <repository> from dependcy pom.xml如何强制 Maven 从依赖项 pom.xml 中忽略 <repository>
【发布时间】:2017-03-10 17:45:49
【问题描述】:

我的依赖项中有一个 pom,其中包含:

<repositories>
  <repository>
   <id>spring-releases</id>
   <url>http://repo.spring.io/libs-release-remote/</url>
</repository>
<repository>
  <id>public-jboss</id>
  <url>https://repository.jboss.org/nexus/content/groups/public-jboss</url>
</repository>
<repository>
  <id>spring-plugin-releases</id>
  <url>http://repo.spring.io/plugins-release/</url>
</repository>

和 $M2_HOME 中的 settings.xml,其中包含:

<settings>
  <mirrors>
    <mirror>
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <url>http://mynexus/repository/maven-public/</url>
    </mirror>
  </mirrors>
  <profiles>
    <profile>
        <id>ignore-repositories</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
      <pluginRepositories>
        <pluginRepository>
          <id>public-jboss</id>
          <url>http://mynexus/repository/maven-public/</url>
        </pluginRepository>
        <pluginRepository>
            <id>spring-releases</id>
          <url>http://mynexus/repository/maven-public/</url>
        </pluginRepository>
        <pluginRepository>
            <id>spring-plugin-releases</id>
          <url>http://mynexus/repository/maven-public/</url>
        </pluginRepository>
    </pluginRepositories>
  </profile>
</profiles>
</settings>

我也试过repositories/repository

<settings>
  <mirrors>
    <mirror>
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <url>http://mynexus/repository/maven-public/</url>
    </mirror>
  </mirrors>
  <profiles>
    <profile>
        <id>ignore-repositories</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
      <repositories>
        <repository>
          <id>public-jboss</id>
          <url>http://mynexus/repository/maven-public/</url>
        </repository>
        <repository>
            <id>spring-releases</id>
          <url>http://mynexus/repository/maven-public/</url>
        </repository>
        <repository>
            <id>spring-plugin-releases</id>
          <url>http://mynexus/repository/maven-public/</url>
        </repository>
    </repositories>
  </profile>
</profiles>
</settings>

但是,当 maven 解决这个 pom 示例时,永远不会采取 mynexus :

[INFO] --- wildfly-swarm-plugin:2016.10.0:package (package) @ microservice-attendee ---
Downloading: http://mynexus/repository/maven-public/org/wildfly/swarm/fraction-list/2016.10.0/fraction-list-2016.10.0.pom
Downloaded: http://mynexus/repository/maven-public/org/wildfly/swarm/fraction-list/2016.10.0/fraction-list-2016.10.0.pom (2 KB at 16.4 KB/sec)
Downloading: http://mynexus/repository/maven-public/org/wildfly/swarm/tools/2016.10.0/tools-2016.10.0.pom
Downloaded: http://mynexus/repository/maven-public/org/wildfly/swarm/tools/2016.10.0/tools-2016.10.0.pom (2 KB at 215.5 KB/sec)
Downloading: http://mynexus/repository/maven-public/com/eclipsesource/minimal-json/minimal-json/0.9.4/minimal-json-0.9.4.pom
Downloaded: http://mynexus/repository/maven-public/com/eclipsesource/minimal-json/minimal-json/0.9.4/minimal-json-0.9.4.pom (5 KB at 53.2 KB/sec)
Downloading: http://mynexus/repository/maven-public/org/wildfly/swarm/fraction-list/2016.10.0/fraction-list-2016.10.0.jar
Downloading: http://mynexus/repository/maven-public/com/eclipsesource/minimal-json/minimal-json/0.9.4/minimal-json-0.9.4.jar
Downloading: http://mynexus/repository/maven-public/org/wildfly/swarm/tools/2016.10.0/tools-2016.10.0.jar
Downloaded: http://mynexus/repository/maven-public/org/wildfly/swarm/fraction-list/2016.10.0/fraction-list-2016.10.0.jar (171 KB at 12211.5 KB/sec)
Downloaded: http://mynexus/repository/maven-public/com/eclipsesource/minimal-json/minimal-json/0.9.4/minimal-json-0.9.4.jar (30 KB at 1859.1 KB/sec)
Downloaded: http://mynexus/repository/maven-public/org/wildfly/swarm/tools/2016.10.0/tools-2016.10.0.jar (65 KB at 4276.7 KB/sec)
Downloading: http://repository.jboss.org/nexus/content/groups/public/org/glassfish/javax.json/1.0.3/javax.json-1.0.3.pom
Downloading: http://mynexus/repository/maven-public/org/glassfish/javax.json/1.0.3/javax.json-1.0.3.pom
Downloaded: http://mynexus/repository/maven-public/org/glassfish/javax.json/1.0.3/javax.json-1.0.3.pom (10 KB at 392.0 KB/sec)
Downloading: http://repository.jboss.org/nexus/content/groups/public/org/glassfish/json/1.0.3/json-1.0.3.pom
Downloading: http://mynexus/repository/maven-public/org/glassfish/json/1.0.3/json-1.0.3.pom
...

有什么想法吗?

感谢您的帮助。

mvn --version
Apache Maven 3.3.9
Maven home: /usr/share/maven
Java version: 1.8.0_91, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-8-openjdk-amd64/jre
Default locale: fr_FR, platform encoding: UTF-8
OS name: "linux", version: "4.4.0-45-generic", arch: "amd64", family: "unix"

【问题讨论】:

  • 您认为“忽略”存储库是解决方案的具体问题是什么?您是否试图强制从 mynexus 下载依赖项,但它是从 jboss nexus 下载?
  • 带星号的 mirrorOf 表示将所有请求重定向到给定的 URL mynexus/repository/maven-public ...
  • @Saku 您确定您的 Maven 正在读取正确的 settings.xml,而不是其他目录中的其他文件吗?
  • 我正在尝试强制从 mynexus 下载依赖项,但它是从 jboss nexus 下载
  • @JF 是的,所有 jars 都来自 mynexus,只有一些从 pom 的依赖项传递存储库

标签: java maven maven-3 pom.xml nexus


【解决方案1】:

您可以像这样在 settings.xml 配置文件中创建特定的 repo,而不是忽略 repo

    <settings>
      <mirrors>
        <mirror>
          <id>nexus</id>
          <mirrorOf>*</mirrorOf>
          <url>http://mynexus/repository/maven-public/</url>
        </mirror>
      </mirrors>
      <profiles>
        <profile>
            <id>specify-repositories</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
          <repositories>
            <repository>
               <id>spring-releases</id>
               <url>http://repo.spring.io/libs-release-remote/</url>
        </repository>
        <repository>
              <id>public-jboss</id>
              <url>https://repository.jboss.org/nexus/content/groups/public-jboss</url>
        </repository>
        <repository>
              <id>spring-plugin-releases</id>
              <url>http://repo.spring.io/plugins-release/</url>
        </repository>
        </repositories>
      </profile>
    </profiles>
    </settings>

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2016-09-07
  • 2015-01-14
  • 2014-02-19
  • 2014-05-09
  • 1970-01-01
  • 2021-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多