如何使用Sonatype Nexus作为Ivy依赖项的镜像

时间:2015-12-10 10:49:22

标签: maven ivy nexus

我想使用Sonatype Nexus作为公司内部maven / ivy存储库。我的目标是每个请求都转到nexus,如果nexus(还)包含所请求的工件,它应该将请求委托给官方maven存储库。从官方maven存储库下载的所有工件应保存在nexus上(作为备份)。另外,我希望能够将自己的工件保存到服务器以供其他项目使用(例如内部库)

在过去的项目中,我们已经设置了一个Sonatype Nexus服务器,用作maven存储库的镜像,工作正常。现在,我正在开发一个使用Ivy来完成现有nexus安装的项目。

在maven项目中,我们在settings.xml中有以下内容

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <interactiveMode />
    <usePluginRegistry />
    <offline />
    <pluginGroups />
    <servers>
  <server>
    <id>deployment</id>
    <username>[USERNAME]</username>
    <password>[PASSWORD]</password>
  </server>
</servers>
    <mirrors>
        <mirror>
            <!--This sends everything else to /public -->
            <id>nexus</id>
            <mirrorOf>*</mirrorOf>
            <url>http://mavenserver:8081/nexus/content/groups/public</url>
        </mirror>
    </mirrors>
    <profiles>
        <profile>
            <id>nexus</id>
            <!--Enable snapshots for the built in central repo to direct -->
            <!--all requests to nexus via the mirror -->
            <repositories>
                <repository>
                    <id>central</id>
                    <url>http://central</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>central</id>
                    <url>http://central</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>
    <activeProfiles>
        <!--make the profile active all the time -->
        <activeProfile>nexus</activeProfile>
    </activeProfiles>
</settings>

我怎样才能与常春藤完成同样的事情?

1 个答案:

答案 0 :(得分:0)

只要您使用Ivy访问Maven存储库而不是某些自定义的Ivy格式,您就可以使用documented in the Nexus Repository Manager documentation方法。

另请查看examples project for a working example

如果您使用Ant,您也可以使用Eclipse Aether而不是Ivy。更多内容也在文档和示例中。