Apache Ant Ivy 笔记

学习网站: apache, there are samples,  速成.   先记下来, 用到再学.

 

简介

我们现在java项目用的build工具是ant,  虽然也知道还有一个maven, 而且现在用的人越来越多, 但是偷懒不愿去深入看.
不过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. (免费的为什么不用最新的, 而且出来也已经一年多了, 更没理由不用了)

Ivy 小试
Ivy的src目录下有一些example:
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>
到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, 从英文文档翻译一下, 简单来说:

1.Ivy默认使用maven 2的repository. 要设置dependency中的属性值, 需要知道library的确切信息.
2.mvnrepository.com上可以找到library以及他们的详细信息. 一旦你找到了你需要的类库, 就可以找到这些类库在Maven2的POM文件中dependency的信息.
3.把Maven2的dependency转换为Ivy的dependency, 你只要把groupId作为organization, 把artifactId作为module name, version作为revision.
4....


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/bruni/archive/2008/01/14/2042698.aspx

 

Ref: http://ant.apache.org/ivy/history/latest-milestone/tutorial/start.html

Section: The build.xml file

Tutorials: http://ant.apache.org/ivy/history/latest-milestone/tutorial.html

Ant tasks: http://ant.apache.org/ivy/history/latest-milestone/ant.html


Ant build.xml
要查看ant build文件中的所有target, 只要在命令行下输入"ant -P" 就可以了.

下面是hello-ivy的build.xml片段:

<project xmlns:ivy="antlib:org.apache.ivy.ant" name="hello-ivy" default="run">

...

    <!-- =================================
    target: resolve
    ================================= -->
    <target name="resolve" description="--> retrieve dependencies with ivy">
        <ivy:retrieve />
    </target>
</project>
可以看到, revole和retrieve dependency很简单, 只要你正确安装Ivy, 然后在build.xml中定义一个namespace, 所有Ivy ant task就全部可用了.

xmlns:ivy="antlib:org.apache.ivy.ant"


如果没有任何设置, Ivy会从maven2 的repository获取文件. resove task 在maven 2 repository中找到了 commons-lang 和 commons-cli, 并且获知 commons-cli依赖于 commons-logging, 所以也会主动把common-logging下载下来. Ivy默认会先把相应的文件放到它的cache中 (默认是user home/.ivy2/cache目录).

最后, resolve task会将相关的jar文件都copy到项目的library目录 (默认是lib目录, 不过你可以很方便的修改, 只要设置retrieve task的属性).


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/bruni/archive/2008/01/15/2045060.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值