加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

IVY throws IOException Resetting to invalid mark原因及解决办

发布时间:2020-12-16 08:43:44 所属栏目:百科 来源:网络整理
导读:当Ivy文件大于10K后,执行jar包加载后会报如下错:impossible to resolve dependencies: java.io.IOException: Resetting to invalid mark。 删除一些注释后,文件小于10K,下载又正常了。 查找了官方网站说明,确认是一个BUG:https://issues.apache.org/ji

当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。

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

修改为:

<!-- 下载或从本地缓存获取第三方包 -->
<target name="get-lib" depends="init,configure-lib" description="下载或从本地缓存获取第三方包">
	<ivy:resolve file="ivy-01.xml" conf="*" />
	<ivy:retrieve pattern="${build.lib.dir}/[artifact].[ext]" />
	<echo>********************************</echo>
	<ivy:resolve file="ivy-02.xml" conf="*" />
	<ivy:retrieve pattern="${build.lib.dir}/[artifact].[ext]" />
	<copy todir="${build.lib.dir}">
		<fileset dir="${ext.lib}">
		</fileset>
	</copy>
</target>

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

<!-- =================================================================== -->
<!-- 下载或从本地缓存获取第三方包 -->
<!-- =================================================================== -->
<target name="get-lib" depends="get-lib1,get-lib2"/> 
          
<target name="get-lib1" depends="init,configure-lib" description="下载或从本地缓存获取第三方包">
    <ivy:retrieve pattern="${build.lib.dir}/[artifact].[ext]" />
</target>
    
<target name="get-lib2" description="下载或从本地缓存获取第三方包">
    <ivy:resolve file ="ivy2.xml"  />  
    <ivy:retrieve pattern="${build.lib.dir}/[artifact].[ext]" />
</target>

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读