【发布时间】:2016-07-08 00:47:48
【问题描述】:
这是我的案例:我已经建立了一个简单的 Ant 项目,其中包含一个 Ivy 任务,用于将工件发布到本地存储库。当我运行 tha ant 脚本时,我看到以下错误:
build.xml: impossible to publish artifacts for my.company#myproject;1.0: java.lang.IllegalStateException: bad ivy file for my.company#myproject;1.0: C:\Users\user\Documents\test\myproject\build\myproject.jar: java.text.ParseException: [[Fatal Error] myproject.jar:1:1: Content is not allowed in prolog. in file:/C:/Users/user/Documents/test/myproject/build/myproject.jar
]
现在,我已经阅读了有关此问题的互联网,我发现了一个常见的解释,即当在
"<?xml version ... ?>"
声明。好吧,我的常春藤文件中没有任何东西。我用记事本++搜索它,打开“显示所有字符”选项..什么都没有。 请问有人遇到过这个问题吗? 这是我的文件:
ivy.xml
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0">
<info organisation="my.company" module="myproject" />
<publications>
<artifact name="myproject" type="jar"/>
</publications>
<dependencies>
...
some list of dependencies
...
</dependencies>
</ivy-module>
Build.xml 目标:
<target name="publish">
<ivy:publish resolver="local" revision="1.0" organisation="my.company" module="myproject" overwrite="true">
<artifacts pattern="${basedir}/build/myproject.jar" />
</ivy:publish>
</target>
谢谢!
【问题讨论】:
-
你的 ivy 文件不是罪魁祸首。一些 XML 解析器试图解析
myproject.jar,但显然没有成功。也许您的<artifacts>元素语法错误? -
确实,如果我将工件更改为
那么错误是:java.lang.IllegalStateException: Ivy file在 my.company#myproject;1.0 的缓存中找不到!