`

ivy中文参考文档(14)-ant任务(2)-resolve

阅读更多

1) 解析

    解析任务实际解析在ivy文件中描述的依赖,并将解析后的依赖放置到ivy缓存中。
    如果在resolve任务前没有调用configure任务,则将使用默认的configuration (等同于不带参数的调用configure).

    在这个任务调用之后,在ant中有四个属性被设置:

  • ivy.organisation
  • 设置为在用于解析的ivy文件中找到的组织名
  • ivy.module
  • 设置为在用于解析的ivy文件中找到的模块名
  • ivy.revision
  • 设置为在用于解析的ivy文件中找到的修订版本名,或者如果在制定的文件中没有修订版本名则是新生成的修订版本名。
  • ivy.resolved.configurations
  • 设置为解析好的configuration列表,逗号分隔。

    从1.2起:

    如果在最后一次解析后被解析的依赖发生了变化,一个额外的属性将被设置为true,否则为false。

ivy.deps.changed


    从2.0起:
    如果你设置参数checkIfCompiled为false(默认是true以保持向后兼容),属性ivy.deps.changed将不被设置。当你有进行多配置下的多模块构建时这容许完善你的构建。

    从2.0起:
    额外的,如果resolveId属性被设置,下列属性也将被设置:

    * ivy.organisation.${resolveId}
    * ivy.module.${resolveId}
    * ivy.revision.${resolveId}
    * ivy.resolved.configurations.${resolveId}
    * ivy.deps.changed.${resolveId}


    当ivy完成解析任务时,它将输出概要来说明解析了什么。概要看起来像这样:

---------------------------------------------------------------------
|                  |            modules            ||   artifacts   |
|       conf       | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
|      default     |   4   |   0   |   0   |   0   ||   4   |   0   |
---------------------------------------------------------------------


    这个表单给出一些关于依赖解析的统计。每行对应于一个解析了的配置。这个表单被划分为两个部分:

  • modules
    • number
    • 在这个配置下被解析的依赖模块的总数目,包括间接的依赖。
    • search
    • 这是需要访问仓库的依赖模块的数目。如果模块还不在缓存中则需要访问仓库,或者要求最新版本,或者一些其他情况(例如,根据checkModified)
    • dwnlded
    • 从仓库下载的依赖的ivy文件的数目。使用清理好的缓存,这个数目可以比模块的总数目少,如果一些依赖没有提供ivy文件。
    • evicted
    • 被冲突管理器逐出的依赖模块的数目。
  • artifacts
    • number
    • 在给定的配置中解析的制品的总数目。
    • dwnlded
    • 从仓库中实际下载的制品的数目。

2) Inline模式

    从1.4起 inline模式容许在没有ivy文件的情况下通过直接设置需要从仓库中被解析的模块调用resolve。对于安装发布的软件特别有用,例如ant任务。当inline设置为true,组织模块和修订版本属性被用于指定哪个模块应该从仓库中解析。

    注意:如果你想要设置标准ivy属性或者通过其他post-resolve任务重用inline解析的结果,类似retrieve, cachepath, report, ..., 你必须设置keep属性为true。


3) Resolve 模式

    从1.4起 解析模式容许定义当执行解析时ivy应该如果使用依赖修订版本约束。

    有两个模式可用:

  • default
  • 在这个模式下使用默认修订版本约束(通过 dependency 元素的rev属性来表示) 
  • dynamic
  • 在这个模式下使用动态修订版本约束(通过 dependency 元素的revConstraint属性来表示)

4) 并发

    在解析的过程中,ivy在解析缓存中创建一个文件。这个文件的创建并不是为了支持并发,意味着你不能在同样的解析缓存中,有同样模块的同样的resolveId的,两个并发解析。

    给开发人员的备注:
    在这个任务调用之后,有一个被解析的模块描述符的引用被设置在ant项目中,id为

"ivy.resolved.descriptor"


5) 属性

Attribute Description Required
file path to the ivy file to use for resolution
用来解析的ivy文件的路径
No. 默认是${ivy.dep.file}或在inline模式下不设值
conf a comma separated list of the configurations to resolve, or '*'.
用于解析的逗号分隔的配置列表,或者'*'
Since 2.0 , you can also use '*(private)', '*(public)'. Note that when inline is true, the configuration '*' is equivalent as '*(public)'.
从2.0起 你也可以使用'*(private)', '*(public)'.注意当inline为true,配置'*'等同于'*(public)'.
No. 默认是${ivy.configurations}
refresh true to force Ivy to resolve dynamic revision in this resolve process, false to use cached resolved revision since 2.0
true 强制ivy在这次解析过程中解析动态修订版本,false使用缓存的解析好的修订版本,从2.0起
No. 默认是false
resolveMode the resolve mode to use for this dependency resolution process since 2.0
这次依赖解析过程要使用的解析模式,从2.0起
No. 默认使用settings 中设置的解析模式
inline true to use inline mode, false to resolve an ivy file since 1.4
true使用inline模块,false解析ivy文件,从1.4起
No. 默认为false
keep true to keep the results of the resolve in memory, false to discard them. When this is false, the standard ivy properties won't be set and other postresolve-tasks (like retrieve and cachepath) won't be able to resuse the results of this resolve!
true在内存中保持这次的解析的结果,false 抛弃他们。当这个是false时,标准ivy属性不会设置而且其他post-resolve任务(类似retrieve和cachepath)将不能重用这次解析的结果!
No. 对于inline模式默认是false,其他情况默认为true
organisation the organisation of the module to resolve in inline mode since 1.4
在inline模式下用于解析的模块的组织名,从1.4起
Yes 在inline模式下必须,其他不是
module the name of the module to resolve in inline mode since 1.4
在inline模式下用于解析的模块的名称,从1.4起
Yes 在inline模式下必须,其他不是
revision the revision constraint to apply to the module to resolve in inline mode since 1.4
在inline模式下适用于要解析的模块的修订版本约束,从1.4起
No. 在inline模式下默认为 "latest.integration",在标准模式下不设置
branch the name of the branch to resolve in inline mode (since 2.1.0)
在inline模式下用于解析的分支的名字(从2.1.0起)
在inline模式下默认为没有分支,标准模式下没有意义
type comma separated list of accepted artifact types (since 1.2 )
逗号分隔的可以接受的制品类型列表(从1.2起)
No. 默认为${ivy.resolve.default.type.filter}
haltonfailure true to halt the build on ivy failure, false to continue
true 在ivy失败时挂起整个构建,false 继续
No. 默认为true
failureproperty the name of the property to set if the resolve failed since 1.4
在解析失败失败时设置的属性名称,从1.4起
No. 默认没有属性被设置
transitive true to resolve dependencies transitively, false otherwise since 1.4
true解析间接依赖,false 不解析,从1.4起
No. 默认为true
showprogress true to show dots while downloading, false otherwise
true在下载过程中显示点,false不显示
No. 默认为true
validate true to force ivy files validation against ivy.xsd, false to force no validation
true强制对ivy文件用ivy.xsd验证,false强制不验证。
No. 默认为ivy的默认值(在配置文件中配置)
settingsRef A reference to the ivy settings that must be used by this task (since 2.0)
必须在这次任务中使用的ivy设置的引用(从2.0起)
No, 默认使用'ivy.instance'
resolveId 后面可以用来引用这次解析的结果的id No, 默认为'[org]-[module]'.
log 在解析过程中使用的日志设置(从2.0起)
可使用的选项是:
  • default
  • 默认日志设置,所有通常的消息都将被输出到控制台
  • download-only
  • 不输出除下载信息外的所有通常的消息。如果每个东西都在缓存里面的解析则不会输出任何消息。
  • quiet
  • 所有消息都不输出,让整个解析过程保持安静除非发生错误
No, 默认为'default'.
checkIfChanged When set to true, the resolve will compare the result with the last resolution done on this module, with those configurations
当设置为true时,解析将比较这次的结果和这个模块的最后一次解析,使用那些配置
No, 默认为'true'



6) 示例

< ivy:resolve  file ="path/to/ivy.xml" />

    解析在path/to/ivy.xml文件中声明的所有依赖。

< ivy:resolve  file ="path/to/ivy.xml"  transitive ="false"   />

    和上面相同,但是不解析间接依赖。

< ivy:resolve  file ="path/to/ivy.xml"  conf ="default, test" />

    解析在path/to/ivy.xml文件配置default和test中声明的依赖。

< ivy:resolve  file ="path/to/ivy.xml"  type ="jar" />

    解析在path/to/ivy.xml文件中声明的所有依赖,但是只下载jar制品。

< ivy:resolve  organisation ="apache"  module ="commons-lang"  revision ="2+"  inline ="true"   />

    从仓库中解析commons-lang模块的2+修订版本,和它的依赖。

 

 

 

分享到:
评论

相关推荐

    leaflet-ant-path_leaflet_

    weight: 2, // 设置线条宽度 dashArray: '10,10', // 设置虚线样式 smoothFactor: 1 // 平滑因子,用于控制动画效果 }).addTo(map); // 模拟动态移动 setInterval(function() { line.setLatLngs(line....

    maven-ant-tasks-2.1.3.zip

    Maven Ant Tasks 是一个由 Maven 项目提供的库,它允许 Ant 构建脚本与 Maven 交互,实现 Ant 任务中的 Maven 功能,如编译、测试、打包等。在 Maven Ant Tasks 2.1.3 版本中,包含了主要的 jar 包 `maven-ant-tasks...

    apache-ant-1.10.0-bin.zip

    - 添加了新的任务和条件,比如`ivy:resolve`用于集成Ivy依赖管理,以及`failonerror`属性控制任务失败时的行为。 - 提升了性能,减少了内存消耗,提高了构建速度。 - 修复了大量的bug,提高了整体稳定性。 在实际...

    apache-ivy-2-5-0.rar

    在"apache-ivy-2-5-0.rar"这个压缩包中,包含了Apache Ivy 2.5.0版本的所有组件和文档。 Ivy的核心概念是依赖解析,它允许开发者声明项目所依赖的库,并自动下载这些库及其依赖,避免了手动管理JAR文件的繁琐工作。...

    apache-ant-1.9.6的jar包

    Apache Ant 是一个开源的构建工具,它主要用于Java项目构建、自动化任务执行,如编译、打包、测试和部署。在Java开发中,Ant以其XML格式的构建文件(build.xml)著称,允许开发者定义项目构建的步骤和依赖关系。...

    apache-ivy-2.3.0-rc2-bin.zip

    在Ant构建脚本中,你可以使用`&lt;ivy:resolve&gt;`任务来解析依赖,`&lt;ivy:retrieve&gt;`任务来将依赖下载到本地文件系统。 Apache Ivy的特性包括: - 支持多种依赖管理协议,如Maven 2.x的POM,或者Ivy自己的XML格式。 - ...

    apache-ivy-2.3.0-bin.tar.gz

    一旦Ant安装完毕,就可以在Ant的构建文件(build.xml)中引入Ivy,通过以下方式声明Ivy任务: ```xml &lt;typedef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpath="/usr/...

    bctsp-jdk14-1.38-API文档-中文版.zip

    标签:bouncycastle、bctsp、jdk14、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,...

    前端开源库-css-resolve-import

    2. **路径解析**:在处理`@import`时,库会根据当前工作目录和指定的根目录来解析相对路径。这使得在不同环境中(例如开发和生产)保持一致性成为可能。 3. **合并**:解析后的CSS文件会被合并成一个单一的CSS流,...

    前端开源库-resolve-bower

    在前端开发领域,开源库是开发者们不可或缺的资源,它们提供了丰富的功能,简化了复杂的任务。"resolve-bower"就是这样一款专为前端开发者设计的开源库,它专注于处理与Bower相关的文件解析工作。Bower是一款流行的...

    IVY学习使用文档

    Ivy学习使用文档 Ivy 是一种基于 Apache Ant 的依赖管理工具,用于管理项目中的依赖项和库文件。下面是对 Ivy 学习使用文档的详细解释和知识点总结。 Ivy 基础知识 Ivy 是一个开源的依赖管理工具,基于 Apache ...

    frocksdbjni-5.17.2-artisans-2.0-API文档-中文版.zip

    包含翻译后的API文档:frocksdbjni-5.17.2-artisans-2.0-javadoc-API文档-中文(简体)版.zip; Maven坐标:com.data-artisans:frocksdbjni:5.17.2-artisans-2.0; 标签:data、frocksdbjni、artisans、jar包、java、...

    vite-plugin-resolve-externals:vite插件解析外部

    vite-plugin-resolve-externals vite插件解析外部 用法 安装 npm i -D vite-plugin-resolve-externals 通过参数传输使用支持设置,还支持在解析中配置外部项目 // vite.config.js const resolveExternalsPlugin = ...

    commons-net-3.8.0-API文档-中文版.zip

    标签:commons、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    commons-pool2-2.10.0-API文档-中文版.zip

    标签:apache、commons、pool2、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请...

    byte-buddy-1.11.22-API文档-中文版.zip

    包含翻译后的API文档:byte-buddy-1.11.22-javadoc-API文档-中文(简体)版.zip; Maven坐标:net.bytebuddy:byte-buddy:1.11.22; 标签:bytebuddy、byte、buddy、jar包、java、中文文档; 使用方法:解压翻译后的API...

    apache-ivy-2.4.0-bin-with-deps.tar.gz

    然后,你可以在Ant构建文件(`build.xml`)中引用Ivy任务,例如`&lt;ivy:resolve&gt;`用于下载依赖,`&lt;ivy:cachepath&gt;`将依赖添加到类路径,以及`&lt;ivy:publish&gt;`用于发布你的项目到仓库。 总结一下,Apache Ivy 2.4.0是...

    前端开源库-resolve-css-import-urls

    2. **处理URL**:找到`@import`后,库会根据当前工作目录和提供的配置,解析出每个导入的URL,确保它们是绝对路径或者相对于主CSS文件的相对路径。 3. **替换`@import`**:解析后的URL会被替换掉原来的`@import`规则...

    opencv-4.5.5-1.5.7-API文档-中英对照版.zip

    包含翻译后的API文档:opencv-4.5.5-1.5.7-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.bytedeco:opencv:4.5.5-1.5.7; 标签:bytedeco、opencv、中英对照文档、jar包、java; 使用方法:解压翻译...

    rh-maven33-xmvn-resolve-2.1.1-1.22.el7.noarch.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

Global site tag (gtag.js) - Google Analytics