简介
我们现在java项目用的build工具是ant, 虽然也知道还有一个maven, 而且现在用的人越来越多, 但是偷懒不愿去深入看.
不过maven中的dependency功能还是很好, 一直希望ant也有这么个功能就好了.
今天, 无意中去Apache Ant的主页, 结果就看到了Ivy2.
Ivy以前也听说过, 不过一直没有尝试去用. 今天看到了就小试了一下.
不过maven中的dependency功能还是很好, 一直希望ant也有这么个功能就好了.
今天, 无意中去Apache Ant的主页, 结果就看到了Ivy2.
Ivy以前也听说过, 不过一直没有尝试去用. 今天看到了就小试了一下.
Ivy的安装
Ivy的安装很容易, 下载之后只要将Ivy的jar文件放到Ant的lib目录就可以了.
http://ant.apache.org/ivy/history/latest-milestone/install.html
当然, 如果你用的是ant1.5, 那么安装就稍微麻烦一点. 我用的是Ant 1.7. (免费的为什么不用最新的, 而且出来也已经一年多了, 更没理由不用了)
http://ant.apache.org/ivy/history/latest-milestone/install.html
当然, 如果你用的是ant1.5, 那么安装就稍微麻烦一点. 我用的是Ant 1.7. (免费的为什么不用最新的, 而且出来也已经一年多了, 更没理由不用了)
Ivy 小试
Ivy的src目录下有一些example:
apache-ivy-2.0.0-beta1/src/example/hello-ivy
命令行下进入上述目录, 然后ant
执行结束, 就可以发现多了lib和build的目录以及里面的内容.
打开ivy.xml, 可以看到两个个dependency的定义.
到lib目录下看, 有三个jar文件
commons-cli-1.0.jar
commons-lang-2.0.jar
commons-logging-1.0.jar
这些就是从repository复制/下载下来的jar文件. 确实不错,
以后就不用手工去copy那么多的jar了, 而且还不知道是否真的用到, 管理起来也太麻烦.
这下好了, 有了Ivy看来可以稍微轻松一点了, 唯一要投资的就是Ivy的学习时间. 还是值得的!
apache-ivy-2.0.0-beta1/src/example/hello-ivy
命令行下进入上述目录, 然后ant
执行结束, 就可以发现多了lib和build的目录以及里面的内容.
打开ivy.xml, 可以看到两个个dependency的定义.
<
ivy-module
version
="2.0"
>
< info organisation ="org.apache" module ="hello-ivy" />
< dependencies >
< dependency org ="commons-lang" name ="commons-lang" rev ="2.0" />
< dependency org ="commons-cli" name ="commons-cli" rev ="1.0" />
</ dependencies >
</ ivy-module >
< info organisation ="org.apache" module ="hello-ivy" />
< dependencies >
< dependency org ="commons-lang" name ="commons-lang" rev ="2.0" />
< dependency org ="commons-cli" name ="commons-cli" rev ="1.0" />
</ dependencies >
</ ivy-module >
到lib目录下看, 有三个jar文件
commons-cli-1.0.jar
commons-lang-2.0.jar
commons-logging-1.0.jar
这些就是从repository复制/下载下来的jar文件. 确实不错,
以后就不用手工去copy那么多的jar了, 而且还不知道是否真的用到, 管理起来也太麻烦.
这下好了, 有了Ivy看来可以稍微轻松一点了, 唯一要投资的就是Ivy的学习时间. 还是值得的!
Ivy Dependency
关于dependency, 从英文文档翻译一下, 简单来说:- Ivy默认使用maven 2的repository. 要设置dependency中的属性值, 需要知道library的确切信息.
- mvnrepository.com上可以找到library以及他们的详细信息. 一旦你找到了你需要的类库, 就可以找到这些类库在Maven2的POM文件中dependency的信息.
- 把Maven2的dependency转换为Ivy的dependency, 你只要把groupId作为organization, 把artifactId作为module name, version作为revision.
- ...