1) retrieve
retrieve任务复制解析好的依赖到你的文件系统的任何位置。
这是一个post resolve任务,带有所有post resolve任务共有的所有的行为和属性。
从1.4起 这个任务甚至可以根据依赖解析的结果用实际应该存在的东西来同步目标目录。这意味着如果设置sync为"true",ivy不仅将复制必要的文件,而且它还会删除那些不再需要在那里的文件。
同步实际上是删除root目标目录下不再是retrieve任务必须的所有文件和目录。
root目标目录是 在目标正则表达式中的标示为第一级别的第一个标记的目录。
例如:
pattern: lib/[conf]/[artifact].[ext]
root: lib
2) 属性
Attribute
Description
Required
pattern |
the pattern to use to copy the dependencies |
No. Defaults to ${ivy.retrieve.pattern} |
ivypattern |
the pattern to use to copy the ivy files of dependencies since 1.3
|
No. Dependencies ivy files are not retrieved by default. |
conf |
a comma separated list of the configurations to retrieve |
No. Defaults to the configurations resolved by the last resolve call, or * if no resolve was explicitly called |
sync |
true to synchronize the destination, false to just make a copy since 1.4
|
No. Defaults to false |
type |
comma separated list of accepted artifact types since 1.4
|
No. All artifact types are accepted by default. |
symlink |
true to create symbolic links, false to copy the artifacts. The destination of the symbolic links depends on the value of the useOrigin attribute (since 2.0)
|
No. Defaults to false |
settingsRef |
A reference to the ivy settings that must be used by this task (since 2.0)
|
No, 'ivy.instance' is taken by default. |
log |
the log setting to use during the resolve and retrieve process. (since 2.0) Available options are the same as for resolve when used to trigger resolve automatically (see postresolvetask), or the following for the retrieve process only:
- default the default log settings, where all usual messages are output to the console
- quiet disable all usual messages, making the whole retrieve process quiet unless errors occur
|
No, defaults to 'default'. |
3) 示例
1.
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><ivy:retrieve />
使用默认参数获取依赖。这通常获取最后一次解析调用的所有依赖到lib目录中。
2.
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><ivy:retrieve pattern="${lib.dir}/[conf]/[artifact].[ext]"/>
获取最后一次解析调用的所有依赖到lib目录中,依赖将分隔在按照组织命名的目录中,每个conf目录包含对应的不带修订版本的制品。
例如,如果ivy文件声明了两个配置default和test,结果lib目录将会像这样:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->lib
default
commons-lang.jar
commons-logging.jar
test
junit.jar
注意如果一个依赖被两个配置要求,它将被复制到两个目录中。这个依赖的下载将只在resolve的时候进行一次。
3.
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><ivy:retrieve pattern="${lib.dir}/[conf]/[artifact].[ext]" sync="true" />
和前面相同,但是开启同步。
例如,如果ivy文件声明了两个配置default和test,结果lib目录将会像这样:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->lib
default
commons-lang.jar
commons-logging.jar
test
junit.jar
现在假设commons-logging 不再是默认配置的一部分,然后新的retrieve调用将会产生如下结果:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->lib
default
commons-lang.jar
test
junit.jar
如果不开启同步,commons-logging将不会被这次调用删除。
4.
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><ivy:retrieve pattern="${lib.dir}/[type]/[artifact]-[revision].[ext]" conf="runtime"/>
仅仅获取配置runtime依赖到用制品类型命名的目录中。结果lib目录将类似这样:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->lib
jar
commons-lang-1.0.jar
looks-1.1.jar
source
looks-1.1.zip
5.
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><ivy:retrieve organisation="foo" module="bar" inline="true" pattern="${my.install.dir}/[artifact].[ext]"/>
解析并获取模块bar和它的依赖的最新版本到${my.install.dir}指出的目录。
分享到:
相关推荐
在实际操作中,开发者通常会使用Ivy的`ivy:retrieve`任务来下载依赖,并将其放入构建路径。`.ivy`文件可能包含以下部分: - `dependencies`:定义项目所依赖的库,包括组织、模块、版本等信息。 - `configurations`...
它提供了许多Ant任务,如`ivy:retrieve`用于下载依赖,`ivy:publish`用于发布项目到仓库。 6. **模块描述符**:`ivy.xml`是Ivy的模块描述符文件,它定义了模块的元数据,包括模块ID、版本、依赖关系、公开的库以及...
在Ant构建脚本中,你可以使用`<ivy:resolve>`任务来解析依赖,`<ivy:retrieve>`任务来将依赖下载到本地文件系统。 Apache Ivy的特性包括: - 支持多种依赖管理协议,如Maven 2.x的POM,或者Ivy自己的XML格式。 - ...
- **build.xml**:这是 Ant 构建脚本,通常会包含调用 Ivy 解析依赖和执行构建任务的指令。 - **build.properties**:可能包含 Ant 构建过程中的属性,例如仓库路径、版本号等。 - **src** 和 **resources** 目录...
在上述示例中,`ivy:resolve`任务会解析项目的所有依赖,而`ivy:retrieve`则会将这些依赖下载到指定的目录(这里为`lib/`)。 Apache Ivy支持多种依赖解决策略,如最新约束策略(latest-constraint)、最新兼容策略...
然后,你可以使用`<ivy:resolve>`任务来解析依赖,`<ivy:retrieve>`任务将依赖库下载到指定的本地目录,以便Ant在构建过程中使用。 Apache Ivy提供了以下关键特性: 1. **依赖管理**:自动下载和管理项目所需的库...
在实际项目中,开发者会在Ant构建脚本(通常是`build.xml`)中引入Ivy任务,通过配置`<ivy:resolve>`和`<ivy:retrieve>`等标签来解析和获取依赖。这样,项目就能根据Ivy定义的依赖关系自动下载并管理所需库,极大地...
使用Ivy时,开发者会在Ant构建脚本中添加Ivy任务,例如`<ivy:resolve>`来解析依赖,`<ivy:retrieve>`来将依赖下载到本地,并且可以使用`<ivy:cachepath>`将依赖添加到构建路径。这样,即使项目依赖于大量的外部库,...
例如,`<ivy:resolve>`任务用于解析依赖关系,而`<ivy:retrieve>`任务则负责将依赖下载到本地文件系统。 总的来说,Apache Ivy是Java开发中的一个强大工具,它简化了依赖管理的过程,提高了开发效率,同时也使项目...
通过`<ivy:resolve>`和`<ivy:retrieve>`等Ant任务,可以轻松地将Ivy集成到现有的Ant构建脚本中。 5. **模块化结构**:Ivy支持模块化的项目结构,允许开发者将大型项目分解为可独立管理的小部分,每个部分都有自己的...
在Ant构建脚本中,我们可以使用`<ivy:resolve>`任务来解析依赖关系,然后使用`<ivy:retrieve>`任务将所需库下载到本地文件系统。这样,开发者就可以在构建过程中轻松地引用这些库,而无需手动管理它们。 Apache Ivy...
- 虽然Ant本身不直接处理库依赖,但可以结合Ivy或Maven等工具来管理依赖,并通过`ivy:resolve`和`ivy:retrieve`任务引入。 7. **集成开发环境(IDE)支持**: - Ant构建文件可以被Eclipse、IntelliJ IDEA等IDE...
`compile`目标依赖于`init`和`ivy-retrieve-common`,这表明在编译之前需要初始化项目和获取相关的依赖。`javac`任务用于实际的Java源代码编译,它使用了从`classpath`中引用的类路径。 总的来说,编译Hadoop_...