错误的常春藤文件 - 序言中不允许内容
Posted
技术标签:
【中文标题】错误的常春藤文件 - 序言中不允许内容【英文标题】:Bad Ivy file - Content is not allowed in prolog 【发布时间】: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 的缓存中找不到!
【参考方案1】:
问题是 revision="1.0" 必须是 ivysettings.xml 文件的一部分,而不是发布任务中。
【讨论】:
以上是关于错误的常春藤文件 - 序言中不允许内容的主要内容,如果未能解决你的问题,请参考以下文章
“序言中不允许内容”错误,但在 XML 声明之前没有任何内容