Maven了解特定的存储库

时间:2017-11-09 07:07:46

标签: maven maven-2 maven-3

我目前已经集成了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>

2 个答案:

答案 0 :(得分:1)

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将忽略项目的存储库。您必须以这种方式指定要忽略的每个存储库。

答案 1 :(得分:0)

我不确定我理解,但这可以在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