错误的常春藤文件 - 序言中不允许内容

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,但显然没有成功。也许您的 &lt;artifacts&gt; 元素语法错误? 确实,如果我将工件更改为 那么错误是:java.lang.IllegalStateException: Ivy file在 my.company#myproject;1.0 的缓存中找不到! 【参考方案1】:

问题是 revision="1.0" 必须是 ivysettings.xml 文件的一部分,而不是发布任务中。

【讨论】:

以上是关于错误的常春藤文件 - 序言中不允许内容的主要内容,如果未能解决你的问题,请参考以下文章

“序言中不允许内容”错误,但在 XML 声明之前没有任何内容

StaX:序言中不允许的内容

序言中不允许内容,但序言在运行时可以吗? Groovy,Jenkins,Java,管道,XML [重复]

序言问题中不允许内容

序言中不能有内容。在安卓工作室

Java“序言中不允许的内容。”