当Ivy文件大于10K后,执行jar包加载后会报如下错:impossible to resolve dependencies: java.io.IOException: Resetting to invalid mark。

删除一些注释后,文件小于10K,下载又正常了。

查找了官方网站说明,确认是一个BUG:https://issues.apache.org/jira/browse/IVY-1289。但后来一想,如果不升级版本,随着依赖的第三方JAR包增多怎么办呢?

于是想到了将ivy.xml拆成多个文件并修改ant脚本如下,经验证OK。

Xml代码  
  1. <!-- 下载或从本地缓存获取第三方包 -->
  2. <target name="get-lib" depends="init,clean-lib-cache,configure-lib" description="下载或从本地缓存获取第三方包">
  3. <ivy:resolve file="ivy.xml" conf="*" />
  4. <ivy:retrieve pattern="${build.lib.dir}/[artifact].[ext]" />
  5. <copy todir="${build.lib.dir}">
  6. <fileset dir="${ext.lib}">
  7. </fileset>
  8. </copy>
  9. </target>

修改为:

Xml代码  
  1. <!-- 下载或从本地缓存获取第三方包 -->
  2. <target name="get-lib" depends="init,clean-lib-cache,configure-lib" description="下载或从本地缓存获取第三方包">
  3. <ivy:resolve file="ivy-01.xml" conf="*" />
  4. <ivy:retrieve pattern="${build.lib.dir}/[artifact].[ext]" />
  5. <echo>********************************</echo>
  6. <ivy:resolve file="ivy-02.xml" conf="*" />
  7. <ivy:retrieve pattern="${build.lib.dir}/[artifact].[ext]" />
  8. <copy todir="${build.lib.dir}">
  9. <fileset dir="${ext.lib}">
  10. </fileset>
  11. </copy>
  12. </target>

当然,除了这种方式,还可以将get-lib命令拆成两个命令,原get-lib命令依赖拆分后的这两个命令。如下所示:

Xml代码  
  1. <!-- =================================================================== -->
  2. <!-- 下载或从本地缓存获取第三方包 -->
  3. <!-- =================================================================== -->
  4. <target name="get-lib" depends="get-lib1,get-lib2"/>
  5. <target name="get-lib1" depends="init,clean-lib-cache,configure-lib" description="下载或从本地缓存获取第三方包">
  6. <ivy:retrieve pattern="${build.lib.dir}/[artifact].[ext]" />
  7. </target>
  8. <target name="get-lib2" description="下载或从本地缓存获取第三方包">
  9. <ivy:resolve file ="ivy2.xml"  />
  10. <ivy:retrieve pattern="${build.lib.dir}/[artifact].[ext]" />
  11. </target>

Ivy与Ant集成学习资料:http://blog.csdn.net/lisonghua/article/details/4770260

原文地址:http://bijian1013.iteye.com/blog/2276778

IVY throws IOException Resetting to invalid mark原因及解决办法相关推荐

  1. java.io.IOException: Resetting to invalid mark

    项目场景: 从对象存储下载一个文件S3Object,然后上传到另一个对象存储中,文件迁移 问题描述 s3Object.getObjectContent()不能直接使用,会直接抛出异常:java.io. ...

  2. PyQt5 图片兼容性问题:libpng warning: bKGD: invalid.,原因及解决办法。

    原因就是你引用了4色道的png图片,在读取图片出了问题. png图片的默认色道是rgba,pyqt5不支持. 颜色分两种rgba和rgb,a就是多了一个透明度. self.toolButton.set ...

  3. SyntaxError: invalid syntax的问题原因和解决办法

    写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友. 目录 一.问题 二.原因及解决办法 一.问题 // An highlighted block SyntaxError: ...

  4. Python一直报错:SyntaxError: invalid syntax 的原因及解决办法

    本篇文章主要讲解 python报错提示 无效语法 SyntaxError: invalid syntax 的原因及解决办法 日期:2022年2月18日 作者:任聪聪 报错现象 python报错如下,但 ...

  5. Invalid bound statement (not found)错误的原因和解决办法

    Invalid bound statement (not found)错误的原因和解决办法 在maven项目中有专门的resources文件夹用来存放各种配置文件,但是不一定都会放在里面,如果配置文件 ...

  6. java.io.StreamCorruptedException: invalid type code: AC解决办法

    .java.io.StreamCorruptedException: invalid type code: AC解决办法 问题描述: 在向一个文件写入可序列化对象时,每次只想向文件的末尾添加一个可序列 ...

  7. java 内存 溢出_java内存溢出的几种原因和解决办法是什么?

    java内存溢出的几种原因和解决办法是什么? java内存溢出的几种原因和解决办法是: 第一类内存溢出,也是大家认为最多,第一反应认为是的内存溢出,就是堆栈溢出: 那什么样的情况就是堆栈溢出呢?当你看 ...

  8. 计算机开机故障报错,笔记本电脑开机报错故障的原因及解决办法

    笔记本电脑开机报错故障是指笔记本电脑开机自检时或启动操作系统前停止启动,在显示屏 出现一些错误提示的故障. 笔记本电脑开机报错故障的原因及解决办法 造成此类故障的原因一般是笔记本电脑在启动自检时,检测 ...

  9. C# System.IO.IOException HResult=0x8007000D Message=数据无效。解决办法

    C# System.IO.IOException HResult=0x8007000D Message=数据无效.解决办法 HResult=0x8007000D Message=数据无效.解决办法) ...

最新文章

  1. 量化交易和高频交易有什么区别
  2. windows窗体继承问题
  3. mysql-front 无法连接本机mysql.
  4. 密码学基础(1)-前言
  5. 汉诺塔的实现 c++
  6. 使用ulimit设置文件最大打开数
  7. Java面试汇总:Java基础(一)
  8. Sklearn 与 TensorFlow 机器学习实用指南(补档)
  9. tocmat linux搭建测试环境,Apache+Tomcat 环境搭建(JK部署过程)
  10. 如何掌握眼神接触技巧?
  11. 例4.4 最大公约数 - 九度教程第47题(最大公约数GCD)
  12. Fiddler4安装与配置_偷懒的肥猫
  13. 服务器光猫一直亮不响应,光猫光信号正常,且光猫和路由器都重启过,还是上不了网咋办?...
  14. 9块9的U盘,你敢买吗?
  15. Oracle中 to_date()函数用法详解
  16. blinker点灯开关组件
  17. 0基础学图论!——图论精讲/详细/新手理解概念必看!
  18. html中怎么设置渐变颜色设置,css中渐变色怎么设置
  19. win2008找不到无线网络
  20. Windows下测试tcp/udp端口是否打开

热门文章

  1. Mac和Windows共享文件,不借助任何软件
  2. vue-cli2.x统一配置接口请求地址和开发环境的跨域代理
  3. 风林评《解读基金,我的投资观与实践》|你怎么能不知道基金投资的三个思想...
  4. Qt串口等接口数据协议传输时的字节拼接处理
  5. C# 之 垃圾回收机制
  6. 生活杂感: 理性与感性
  7. Armadillo | 复数小记
  8. 如何使用阿里巴巴矢量图标库,创建自己的svg图标库(iview ts)
  9. 八字取名,你应该要考虑的7个实用建议
  10. jQuery - 基于当前元素的遍历