首页 > 解决方案 > mvn 站点插件错误 TEXT 必须紧跟 END_TAG 而不是 START_TAG

问题描述

运行 mvn 站点时出现此错误:

SiteToolException: Error parsing site descriptor: TEXT must be immediately
followed by END_TAG and not START_TAG (position: START_TAG seen 
...ead>\r\n\t\t\t<script src="js/jquery-1.12.4.min.js" type="text/javascript" />... @16:67)

有了这个site.xml

 1<?xml version="1.0" encoding="ISO-8859-1"?>
 2<project name="documentation">
 3  <skin>
 4    <groupId>org.apache.maven.skins</groupId>
 5    <artifactId>maven-fluido-skin</artifactId>
 6    <version>1.9</version>
 7  </skin>
 8  <bannerLeft>
 9    <src>images/doc-banner-color.jpg</src>
10    <href>introduction.html</href>
11  </bannerLeft>
12  <version position="none" />
13  <publishDate position="none" />
14  <body>
15    <head>
16      <script src="js/jquery-1.12.4.min.js" type="text/javascript" />
17      <script src="js/lunr.min.js" type="text/javascript" />
18      <script src="js/superscript.js" type="text/javascript" />
19    </head>
...

我应该如何修复 XML 来解决这个错误?当site.xml我使用旧版本的 asciidoctor 时,它正在工作

标签: javahtmlxmlmavenmaven-site-plugin

解决方案


在最新版本的maven-site-plugin中,您必须转义要注入该<head>部分的任何内容。

文档

从 Maven 站点插件版本 3.5 开始,如果使用 XHTML 内容,则必须对其进行转义,例如通过 CDATA XML 表示法。以前,XML 内容不需要这种转义。

所以你应该使用:

<head>
    <![CDATA[
    <script src="js/jquery-1.12.4.min.js" type="text/javascript" />
    <script src="js/lunr.min.js" type="text/javascript" />
    <script src="js/superscript.js" type="text/javascript" />
    ]]>
</head>

推荐阅读