ivy 配置 maven代理

Posted 美码师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ivy 配置 maven代理相关的知识,希望对你有一定的参考价值。

Ivy 是一个依赖管理工具,直观感受是其跟maven 的作用差不多;但这两个其实是不同的工具:

maven 是面向整个项目的工程管理及构建工具;
ivy 仅作为依赖管理工具,与ant 高度集成。

需要了解更多不同,可看看这里:
http://ant.apache.org/ivy/m2comparison.html

 

几年前了解到这东西,也是因为 play! 框架内置的依赖使用它进行依赖管理,但至今国内仍然以maven 作为主流依赖管理工具,看来还是先入为主的问题。
项目尽管使用了 ivy,依赖的处理仍然会选择 maven2 兼容仓库ibiblio,也是国外的站点。
众所周知的原因,国外站点的资源下载是龟速的,有必要给它提提速了。

 

修改 ${USER_HOME}/.ivy2/ivysettings.xml

<ivy-settings>
<!-- path to local maven repo and default maven layout -->
<property name="local-maven2-pattern"
value="${user.home}/.m2/repository/[organisation]/[module]/[revision]/[module]-[revision]"
override="false" />
 
<!-- set resolver chain as default -->
<settings defaultResolver="main" />
 
<!-- configure caches -->
<caches repositoryCacheDir="${user.home}/.ivy2/cache">
<!-- do not cache from local .m2-->
<cache name="nocache" useOrigin="true" />
<cache name="default" />
</caches>
 
<resolvers>
<chain name="main">
<!-- as this is not cached, even changing SNAPSHOT dependencies
are resolved correctly -->
<filesystem name="local-maven-2" m2compatible="true" local="true"
cache="nocache">
<ivy pattern="${local-maven2-pattern}.pom" />
        <artifact pattern="${local-maven2-pattern}(-[classifier]).[ext]" />
</filesystem>
<!-- use repository manager as proxy to maven-central
(and all other repositories)-->
<ibiblio name="repomanager" m2compatible="true"
root="http://maven.aliyun.com/nexus/content/groups/public/" cache="default"/>
</chain>
</resolvers>
</ivy-settings>

 

解释 
resolvers 配置了 名为main 的依赖处理链,包括两个处理器:
1 本地文件系统,用于兼容 maven2 的路径
如果 已经存在maven项目且下载了依赖包,会从maven 本地 repo目录中获取,不缓存到 ivy目录
2 ibiblio ,兼容maven 的处理器
使用阿里云的 镜像地址(仓库地址),默认缓存到 ivy 目录

以上是关于ivy 配置 maven代理的主要内容,如果未能解决你的问题,请参考以下文章

Apache IVY 到 Maven:MakePom 任务

Log4j 2环境配置和适配组件配置(maven/ivy/gradle)

Nexus OOS 2 作为 ivy 工件的代理

GroovyGradle 构建工具 ( 自动下载并配置构建环境 | 提供 API 扩展与开发工具集成 | 内置 Maven 和 Ivy 依赖管理 | 使用 Groovy 编写构建脚本 )

使用 gradle 解决代理存储库上的 ivy 依赖关系会导致资源丢失

Ivy 无法从 Maven Central 解析 log4j