Maven 寻找特定的存储库

Maven lookout for specific repository

我目前已经集成了 maven、jenkins、Nexus 和 git,我正在学习这些工具。

我的要求是告诉 Maven 只从我在 pom.xml 中提到的存储库下载我的依赖项,而不是从我的 Nexus 存储库下载我的依赖项,但它的作用恰恰相反。

我已经在 settings.xml 的存储库下声明了我的 Nexus 版本和快照存储库。我如何告诉 Maven 从特定存储库而不是从我的 Nexus 存储库下载我的依赖项。

下面是我的 pom.xml 片段

<repositories>
    <repository>
            <id>faq</id>
            <url>https://mycheck.github.com/faq/port/hist</url>
    </repository>

    <repository>
      <id>dig</id>
     <url>https://repository.jboss.org/nexus/content/repositories/releases</url>
   </repository>
</repositories>

<dependencies>
        <dependency>
            <groupId>com.org</groupId>
            <artifactId>faq</artifactId>
            <version>${faq.version}</version>
        </dependency>
        <dependency>
            <groupId>com.net.myorg</groupId>
            <artifactId>retina</artifactId>
            <version>${retina-support.version}</version>
        </dependency>
            ........
            ......
 </dependencies>

我不确定我是否理解,但这可以在 Maven settings.xml 文件中完成,在此文件中您可以指定存储库策略...

https://confluence.atlassian.com/bamkb/how-to-override-the-maven-local-repository-setting-838546993.html

此外,当你调用你想要的maven命令时,可以将repo指定为参数运行。

有关 settings.html 的更多参考: https://maven.apache.org/settings.html

在您的 pom.xml 中,您必须覆盖在 settings.xml 中配置的存储库以禁用两者 snapshotsreleases。例如,考虑到在您的 settings.xml 中配置了一个存储库 my-repo,而您想在项目中忽略它,那么您的 pom.xml 必须包含:

<repositories>
    <repository>
        <id>my-repo</id> <!-- id must match settings.xml -->
        <name>My Private Repo</name>
        <url>http://repo.mycompany.org/maven2</url>
        <layout>default</layout>
        <!-- disable both snapshots and releases -->
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <releases>
            <enabled>false</enabled>
        </releases>
    </repository>
</repositories>

<id> 必须与您的设置中配置的相匹配。由于 snapshotsreleases 都设置为 false,Maven 将简单地忽略项目的存储库。您必须指定要以这种方式忽略的每个存储库。