作者:臭豆腐[trydofor.com]
日期:2010-06-07
授权:署名-非商业-保持一致 1.0 协议
声明:拷贝、分发、呈现和表演本作品,请保留以上全部信息。
1. 在我和你间填个字
肉麻的开始,很自然会填V,于是就有了IVY了。
话说这一日,豆腐心血来潮,要写一个程序,要求是这样的:
-
在两个数据库之间倒动数据。
-
可以定制,灵活的,易懂的。
-
表间有依赖,有自增型主键。
-
简单简洁,全JDBC,全SQL。
不想让日本人知道,进而不想让印度人知道,于是建了个模块。
credit_tea,希望这个模块内的东东可以象茶一样清爽。
自然想到了Maven2,但这家伙始终让我望而止步,没大规模使用过。
又自然的想起了IVY,因为大家对ANT熟,Spring也用它们。
2. 爱是这么炼成地
最新ivy-2.1.0.jar,放到 ant1.7.0/lib下 (注意Spring编译时不这么放)。
最新ivyde-2.0.0 安装到非eclipse目录,如,D:/software/eclipse_plugins/
先说这个ivyde,在设置properties和setting时,很缺心眼。
-
enable project specific settings时,必须 setting和properties全指定。
-
俺不想动Ivy的默认设置,只想和ant一样修改个properties而已,但不行。
在这种情况下,为了使eclipse正常开发,采用了曲道救国的策略。
-
把public中用的lib,放到shared中。
-
把内部生产的lib,放到local中。
-
ant和ivyde都是用默认 cache,但由ant初始化。
于是eclipse package视图结构如下:
<
txt
> eclipse package
|
Credit_Tea、
|-- cn.edgesoft.credit.database.datasync
|--|-- src/ # 主源代码
|--|-- test/ # Junit源代码
|--|-- JRE System Library [j2re1.4.2_13]
|--|-- build/ivy.xml[*]
|--|-- build/
|--|--|-- build.properties
|--|--|-- build.xml
|--|--|-- ivy.xml
|--|--|-- ivysettings.properties
... ... ...
|-- cn.edgesoft.credit.librepo
|--|-- ivyrepo/ # ivy 仓库
|--|--|-- local/
|--|--|-- shared/
|--|-- scripts/ # 构建仓库的脚本
|--|--|-- ant-default-setting.properties
|--|--|-- ant-ivr-publish-jars.properties
|--|--|-- ant-ivr-publish-jars.xml
|--|--|-- ivy.xml
|--|--|-- ivysettings.properties
|
3. 我爱你,就像蚂蚁爱日食
脚本打包备查,十分简陋,能运行,仅供参考。
话说,俺十分希望 ivyde能像ant一样的确定 properties 和工作。
在 ant 制作release文件的时候,发送了一些插曲。
首先,是 ivy管理的依赖 如何进 release/lib/。步骤如下:
-
ivy:cachefileset
-
copy todir="${dir.release.lib}" flatten="true"
然后,是如何进MANIFEST.MF文件。步骤如下:
-
pathconvert 转换相对路径和 dirsep "/"
-
了解 MANIFEST.MF 定义中的换行规则。
最后,是IVY的conf规则,这个是没认真看手册,卡在了dom4j的依赖上。
dom4j的ivy.xml中conf有10个。默认全引入过来,一堆jar。
在细读手册之后,增加了conf="*->master"。
这么折腾的好处是,lib管理都给IVY了,工程清楚。发布的时候ant给收集过来。
略带点遗憾,就是这次依旧用了jdk1.4,没有泛型,集合类操作起来很晕乎。
回复 达伦王 2010年06月08日 星期二 19:43