- 浏览: 583515 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (188)
- java (14)
- web (14)
- web service (3)
- 杂谈 (14)
- Version Control (13)
- software test (30)
- linux (17)
- database (3)
- distributed storage and computing (1)
- ejb (7)
- project building (46)
- spring & IOC (2)
- Thread (2)
- xml (2)
- tool software (0)
- [网站分类]1.网站首页原创Java技术区(对首页文章的要求: 原创、高质量、经过认真思考并精心写作。BlogJava管理团队会对首页的文章进行管理。) (0)
- project manager (9)
- OSGI (1)
- nosql (3)
最新评论
-
sp42:
好搞笑
你懂不懂xml! (2) -
cherishmmo2004:
感觉你们都很牛掰,我们做的一个运维平台也是用karaf的,用k ...
基于osgi开发大型的企业应用 -
liubey:
“自作聪明”的使用了读写锁,其实只使用ReentrantLoc ...
编码最佳实践(4)--小心LinkedHashMap的get()方法 -
liubey:
你这个代码是sublist后仍然一直持有这个sub的引用,一般 ...
编码最佳实践(5)--小心!这只是冰山一角 -
xiegqooo:
初学maven(5)-使用assembly plugin实现自定义打包
1) ant任务
使用ivy的主要和最频繁的方式是在ant构建文件中。不过,ivy也可以作为独立的应用被调用。
如果你使用ant版本1.6.0 或更高,你仅仅需要添加ivy的命名空间到你的项目中(你的project标签的属性)
这样你就可以调用ivy任务了。
如果你想让你的构建处理ivy.jar,不管是在ant的lib目录还是在本地的lib目录。你可以类似这样使用任务定义
< fileset dir ="path/to/dir/with/ivy/jar" includes ="*.jar" />
</ path >
< taskdef resource ="org/apache/ivy/ant/antlib.xml"
uri ="antlib:org.apache.ivy.ant" classpathref ="ivy.lib.path" />
结合项目命名空间中的antlib定义,它将从你的ant类库或者本地目录(在这个例子中试path/to/dir/with/ivy/jar)装载ivy类。
如果你使用ant1.5.1或者更高,你不得不定义你在你的构建文件中使用的任务。例如:
< taskdef name ="ivy-resolve" classname ="org.apache.ivy.ant.IvyResolve" />
< taskdef name ="ivy-retrieve" classname ="org.apache.ivy.ant.IvyRetrieve" />
< taskdef name ="ivy-deliver" classname ="org.apache.ivy.ant.IvyDeliver" />
< taskdef name ="ivy-publish" classname ="org.apache.ivy.ant.IvyPublish" />
注意:上面列出的任务并不是详尽。为了完整的有对应类的任务列表,请查看svn中的或者你使用的版本的antlib.xml
然后你可以使用任务,但是检查他们的名字,下面的例子假设你使用ivy命名空间(ivy:xxx任务),不过对于ant1.5你不能使用命名空间,如果你想遵循上面的任务定义可以使用ivy-xxx任务。
如果你使用低于1.5.1的ant版本,你不能使用ivy任务...你应该作为外部程序来调用ivy。
2) 从ant中调用ivy: 开始步骤
一旦你的构建文件可以调用ivy任务,最简单的使用ivy的任务就是不带任何参数的调用ivy的retrieve任务。
这将使用默认值调用ivy,在很多项目中是可行的。实际上,它等同于
< ivy:configure />
< ivy:resolve file ="${ivy.dep.file}" conf ="${ivy.configurations}" />
< ivy:retrieve pattern ="${ivy.retrieve.pattern}" conf ="${ivy.configurations}" />
</ target >
这三个任务遵循ivy获取依赖过程的3个主要步骤:
* 首先configure任务通过给出一个xml配置文件的路径来讲述怎样找到依赖。
* 然后resolve任务实际解析ivy文件描述的依赖,并将这些依赖放置到ivy缓存(在配置文件中配置的一个目录)
* 最后retrieve任务从缓存中复制依赖到任何你想要的文件系统中。随后你可以用这些依赖用标准ant路径来构造你的classpath。
为了更准确的理解ivy任务的行为,需要要知道在configure被调用的开始ivy装载了一个属性文件。这个属性文件包含以下属性:
ivy.lib.dir = ${ivy.project.dir}/lib
ivy.build.artifacts.dir = ${ivy.project.dir}/build/artifacts
ivy.distrib.dir = ${ivy.project.dir}/distrib
ivy.resolver.default.check.modified = false
ivy.default.always.check.exact.revision = true
ivy.configurations = *
ivy.resolve.default.type.filter = *
ivy.status = integration
ivy.dep.file = ivy.xml
ivy.settings.file = ivysettings.xml
ivy.retrieve.pattern = ${ivy.lib.dir}/[artifact]-[revision].[ext]
ivy.deliver.ivy.pattern = ${ivy.distrib.dir}/[type]s/[artifact]-[revision].[ext]
ivy.publish.src.artifacts.pattern = ${ivy.distrib.dir}/[type]s/[artifact]-[revision].[ext]
ivy.report.output.pattern = [organisation]-[module]-[conf].[ext]
ivy.buildlist.ivyfilepath = ivy.xml
ivy.checksums=sha1,md5
这些属性的最新版本你可以检查svn版本。
2.0之后,在调用第一个ivy任务后,属性ivy.version将可用并包含被使用的ivy类库的版本。
2) ivy任务属性: 概论
任务属性的值可能通过不同位置提供。这三个可能的位置是:
1. 任务属性
2. 实例
3. 项目属性
位置被要求使用这种顺序,因此任务在任务属性中设置的值将覆盖在ivy实例中发现的值,例如。
这里考虑的ivy实例是类Ivy的一个实例,通过调用configure任务建立,并且随后被其他任务重用。因为大部分任务需要ivy实例,他们首先检查是否有实例可用(例如 configure已经被调用),如果没有一个可用,则调用默认的configure,将得到的ivy实例结果用于后面的任务(除非另外一个configure被调用)。
通常理解这些不是必须的,但是如果你忘记在其他任务前调用configure而在你的环境中configure步骤是必须的,这将导致一些问题。
3) 主要任务的通常周期
4) 示例
这里有一个使用ivy的更加复杂的构建文件的例子:
< target name ="resolve" >
< ivy:configure file ="../ivysettings.xml" />
< ivy:resolve file ="my-ivy.xml" conf ="default, myconf" />
</ target >
< target name ="retrieve-default" depends ="resolve" >
< ivy:retrieve pattern ="lib/default/[artifact]-[revision].[ext]" conf ="default" />
</ target >
< target name ="retrieve-myconf" depends ="resolve" >
< ivy:retrieve pattern ="lib/myconf/[artifact]-[revision].[ext]" conf ="myconf" />
</ target >
< target name ="retrieve-all" depends ="resolve" >
< ivy:retrieve pattern ="lib/[conf]/[artifact]-[revision].[ext]" conf ="*" />
</ target >
< target name ="deliver" depends ="retrieve-all" >
< ivy:deliver deliverpattern ="distrib/[artifact]-[revision].[ext]"
pubrevision ="1.1b4" pubdate ="20050115123254" status ="milestone" />
</ target >
< target name ="publish" depends ="deliver" >
< ivy:publish resolver ="internal"
artifactspattern ="distrib/[artifact]-[revision].[ext]"
pubrevision ="1.1b4" />
</ target >
</ project >
所有的ivy任务在随后的页面中介绍。
发表评论
-
搜索maven依赖的网站推荐
2011-12-02 16:04 4320使用maven填写依赖的时候,常会遇到需要查一下gro ... -
hudson中subversion HEAD check out 的问题及疑惑
2010-09-30 10:56 40近期发现一个问题,hudson执行任务时,经常不能获取 ... -
你走你的阳光道,我走我的独木桥:整合ant ivy 和testng
2010-05-31 16:11 2078近期自己折腾自己,放着正统的maven + jun ... -
slf4j1.6.0-RC0和logback的0.9.20版本不兼容
2010-04-26 08:54 3514今天,尝试使用slf4j + logback的黄金组合,结果发 ... -
fisheye2.2.1 & Crucible 2.2.1 安装配置笔记
2010-04-27 16:48 31871) 下载 从atlassian网站 ... -
让ivy支持maven的classifier属性
2009-10-15 01:56 3186在maven中,对于一个依赖,除了groupId,ar ... -
ivy教程(1)-目录
2009-09-21 23:57 2953学习的最佳方式是实践!这是ivy教程将帮助你做到的 ... -
ivy教程(2)-快速开始
2009-09-22 11:48 3061在这个例子中,我们将看到使用ivy的一个最简单的方 ... -
ivy教程(3)-调整默认设置
2009-09-24 20:58 2362ivy绑定一些默认 ... -
ivy教程(4)-多解析器
2009-09-25 15:28 1803这个例子演示模块是如何被多解析器获得的。使用多解析 ... -
ivy教程(5)-双重解析器
2009-09-27 20:58 1723在一些情况下,会发生这样的事情:你的模块描述符(ivy ... -
ivy教程(6)-项目依赖
2009-09-29 23:32 3007这个示例将举例说明在两个项目之间的依赖。 depen ... -
ivy教程(7)-在多项目环境下使用ivy
2009-10-03 11:48 2370在上一个教程中,你已 ... -
ivy教程(8)-使用ivy模块配置
2009-10-04 10:15 2670这个教程介绍ivy文件中的模块配置的使用。ivy模块配置事实上 ... -
ivy教程(9)-架设仓库(1)-介绍
2009-10-04 13:42 1856install任务让你从一个仓库复制一个模块或者模 ... -
ivy教程(10)-架设仓库(2)-基础仓库复制
2009-10-04 15:04 3056在这个步骤中我们使用install任务来从mave ... -
ivy教程(11)-架设仓库(3)-使用命名空间
2009-10-09 21:04 2261现在你已经看到从一个已经存在的仓库创建你自己的仓库是如何的简单 ... -
ivy教程(12)-更多例子
2009-10-09 21:29 1819如果你已经成功的跟随并理解了所有的教程,可能你还是需要得到更好 ... -
ivy中文参考文档(21)-ant任务(9)-post resolve tasks
2009-09-15 14:17 14691) post resolve tasks ... -
ivy中文参考文档(20)-ant任务(8)-cachefileset
2009-09-03 23:11 13941) cachefileset 为配置构建一个有iv ...
相关推荐
Apache Ant 是一个开源的构建工具,它主要用于Java项目构建,由Apache软件基金会开发。这个"apache-ant-1.7.1"版本是Ant的...这个压缩包提供了一站式的解决方案,包括运行环境和参考文档,是学习和使用Ant的理想起点。
2. `lib`目录:存放Ant运行所需的库文件,如JAR包,这些库提供了Ant任务的实现和对其他工具(如JUnit测试框架)的支持。 3. `docs`目录:包含Ant的用户手册、API文档和其他参考资料,帮助开发者理解和使用Ant。 4. `...
在阅读“apache-ant-1.9.4-manual.zip”中的文档时,用户应关注如何创建和配置构建文件、如何定义任务和目标、如何处理文件和目录、以及如何解决实际项目中的构建问题。这份手册会详细解释每个任务的用法,提供示例...
2. **灵活性**:Ant的任务可以通过自定义Java类或使用已存在的Ant任务来实现,具有很高的可扩展性。 3. **依赖管理**:Ant可以处理项目的依赖关系,确保在构建过程中按照正确的顺序执行任务。 4. **可重用性**:...
3. `docs`目录:包含Ant的文档和API参考,帮助开发者理解和使用Ant。 4. `LICENSE`和`NOTICE`文件:提供了Apache Ant的许可信息和版权通知。 使用Apache Ant时,开发者通常会创建一个自定义的build.xml文件,这个...
Apache Ant 是一个Java库和命令行工具,其任务是驱动构建过程。...总的来说,ANT中文文档是学习和掌握ANT构建工具的重要参考资料,通过阅读和实践,开发者能够充分利用ANT的强大功能,提升项目构建的效率和质量。
Ant是Apache软件基金会的一个开源项目,它是一款基于Java的构建工具,主要负责自动化构建Java项目。...提供的Ant1.7.chm帮助文档应该包含了Ant 1.7版本的所有功能和用法,是学习和参考的宝贵资源。
Ant是Apache软件基金会...这个压缩包中的文档涵盖了Ant的基础知识、教程、参考和最佳实践,对于想要深入学习Ant的人来说是一份全面的学习资料。通过阅读这些文档,你可以逐步掌握Ant的使用,提升项目构建的效率和质量。
例如,`maven-antrun-plugin`允许在Maven项目中使用Ant任务,`ant-contrib`提供了更多的控制结构,如循环和决策。 8. **构建生命周期**:虽然Ant没有预定义的构建生命周期像Maven那样,但用户可以自由定义目标之间...
这通常意味着将`ivy.jar`复制到Ant的`lib`目录,或者在运行Ant任务时通过`-lib`选项指明Ivy JAR的位置。然后,你可以在Ant构建文件(`build.xml`)中引用Ivy任务,例如`<ivy:resolve>`用于下载依赖,`<ivy:cachepath...
"Ant参考教程.doc"提供了Ant内置任务的详细说明,每个任务的参数、用法和示例。这对于开发者理解和使用各种任务非常有帮助,例如`tstamp`任务用于插入当前日期和时间,`junit`任务用于运行JUnit测试等。 "Ant十五大...
2. `docs`: 文档目录,可能包含用户指南、API参考和其他帮助材料,方便用户了解如何使用Ivy。 3. `lib`目录:可能包含Ivy运行时依赖的第三方库文件。 4. `bin`目录:可能包含可执行脚本,使得在不同操作系统上运行...
3. `docs`目录:可能包含Ivy的文档,如用户指南和API参考。 4. `ivy.xml`:项目自身的Ivy配置文件,用于构建过程中的依赖管理。 5. `LICENSE`和`NOTICE`文件:关于软件许可证和版权信息。 在开发Java项目时,你可以...
4. **与Ant集成**:Ivy可以无缝集成到Ant构建过程中,通过Ant任务调用Ivy进行依赖解析和下载。 5. **分辨率策略**:Ivy提供了多种策略来解决依赖冲突,例如最新优先、最旧优先、用户指定版本等。 6. **发布功能**...
3. **docs**:包含Ivy的文档,如用户指南、API参考等,帮助开发者理解和使用Ivy。 4. **conf**:此目录下可能有默认的Ivy配置文件,如`ivysettings.xml`,用于定义如何获取和管理依赖。 5. **src**:如果包含,这...
这是一份官方的帮助文档,包含了Ant的所有命令、任务和属性的详细说明。用户可以通过查阅这个手册,快速了解Ant的基本用法,如定义项目结构、设置属性、执行任务等。此外,手册还深入介绍了Ant的条件语句、循环、...
压缩包中的“Ant帮助文档.chm”是Ant的官方帮助文档,通常包含了详细的API参考、用户指南、任务列表、条件属性、数据类型等全面的信息。通过阅读这个文档,你可以了解到以下关键知识点: 1. **Ant基本概念**:了解...
通过阅读文档和参考他人的构建文件,可以掌握更多高级特性。 总的来说,Ant是Java开发中的重要工具,熟练掌握Ant的使用能显著提高开发效率,使项目的构建和维护变得更加有序和可控。通过深入理解和实践,我们可以更...
2. `docs`目录:可能包含Ivy的用户手册、API文档和其他相关的参考资料,对于理解和使用Ivy非常有帮助。 3. `lib`目录:可能包含Ivy运行时所需的其他库文件,如Apache Commons Logging等。 4. `bin`目录:可能包含可...
7. **插件(Plugin)与扩展**:Ant本身的功能可以通过第三方插件扩展,例如Maven的Ant任务,使两个工具可以相互协作。 8. **依赖管理**:虽然Ant本身不内置依赖管理功能,但可以通过 Ivy 或 Gradle 等工具集成,...