我想使用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>
我怎样才能与常春藤完成同样的事情?
答案 0 :(得分:0)
只要您使用Ivy访问Maven存储库而不是某些自定义的Ivy格式,您就可以使用documented in the Nexus Repository Manager documentation方法。
另请查看examples project for a working example。
如果您使用Ant,您也可以使用Eclipse Aether而不是Ivy。更多内容也在文档和示例中。