ivy的概念这边不多讲,直接看官网或者其他博客,我这边要给讲的是,如何搭建一个项目仓库(用于放第3方依赖jar或自己封装的工具jar),类似maven的nexus私服仓库,项目中的开发人员都去nexus查找依赖jar,下载到本地仓库,然后引入项目中。
准备条件
1. Eclipse已经安装ivy插件
2. jdk环境已经配置
创建IVY_BASE项目仓库
1.1 新建普通java项目IVY_BASE
1.2 创建ivyrepository文件夹
此文件夹用于保存第3方的jar文件的配置,目录结构如下图所示:
从图中可以很明显看出,每个组织的jar分别放到不同的文件夹中,以slf4j为例,目录下包含:
slf4j-api
slf4j-jcl
slf4j-jdk14
slf4j-log4j12
四种类型的工具类,每个工具类下面包含两个文件夹 ivys和jars1.ivys文件中存放是jar包对应ivy.xml配置文件,和jars中的jar包一一对应
2.jars存放不同版本的jar包
以slf4j-api-1.6.1.jar对应的ivy-1.6.1.xml配置为例
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="1.0" xmlns:m="http://ant.apache.org/ivy/maven">
<info organisation="slf4j"
module="slf4j-api"
revision="1.6.1"
status="release"/>
</ivy-module>
1.3 创建ivyde-cache 缓存文件夹
这个文件用来保存已经被项目引用的jar文件的缓存,刚开始创建的时候默认为空,等有项目引用IVY_BASE中的jar包时,会自动将这些jar包复制一份到此缓存目录中,下次引用这些jar包,直接从缓存目录中取,如果缓存目录中找不到,再去ivyrepository仓库目录中拿,拿到后再放到缓存目录中。
1.4 创建ivysettings.xml核心配置文件
这个是ivy的核心配置文件,里面定义了ivyrepository和ivyde-cache之间的关系
<ivysettings>
<settings defaultResolver="ivy-repository" defaultCache="${ivy.settings.dir}/ivyde-cache"/>
<resolvers>
<filesystem name="ivy-repository">
<ivy pattern="${ivy.settings.dir}/ivyrepository/[organisation]/[module]/ivys/ivy-[revision].xml"/>
<artifact pattern="${ivy.settings.dir}/ivyrepository/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]"/>
</filesystem>
</resolvers>
</ivysettings>
其他项目会根据这个配置文件,引入ivyrepository仓库中的jar文件
2 创建IVY测试项目
2.1 新增一个普通java项目ivytest
2.2 新增ivy.xml配置文件
ivy.xml文件中定义了需要引入的依赖jar
<ivy-module version="1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info organisation="trendy" module="poc_test"/>
<dependencies>
<dependency org="trendy" name="trendy-framework" rev="0.1.14" transitive="false"/>
<dependency org="trendy" name="trendy-admin-client" rev="0.1.1" transitive="false"/>
<dependency org="trendy" name="trendy-system-client" rev="0.1.9" transitive="false"/>
</dependencies>
</ivy-module>
2.3 添加ivy项目依赖,修改配置
- 右键ivytest项目,弹出选择框,点击Add Ivy Libray,弹出ivy配置界面
选择settings选择,修改Ivy settings paths,选择上面所讲的ivysettings.xml文件即可,点击Finish后,此时ivytest项目会自动从IVY_BASE仓库中检出jar包,同时会在ivyde-cache目录中生成一堆缓存文件,如下图
并且会在项目中lib目录下引入ivy.xml文件中配置的依赖包
到这里,整个ivy搭建仓库项目及项目引用示例就完成了。