【问题标题】:Maven Error - Expected START_TAG or END_TAG not TEXTMaven 错误 - 预期的 START_TAG 或 END_TAG 不是 TEXT
【发布时间】:2013-06-24 17:39:58
【问题描述】:

我正在使用 Eclipse Indigo 从头开始​​设置 spring mvc web 应用程序 + hibernate jpa + maven。在进行 Maven 构建时,我遇到了这个错误。

[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error installing artifact's metadata: Error installing metadata: Error updating group repository metadata

expected START_TAG or END_TAG not TEXT (position: TEXT seen ...<extension>war</... @13:25) 
[INFO] ------------------------------------------------------------------------

我尝试使用谷歌搜索,但找不到适合我的解决方案。我什至在整个项目中搜索文本 &lt;extension&gt;war&lt;/ 并且神秘地,在我的项目中没有这样的文本。但是,在tomcat web.xml 中有很多&lt;extension&gt; 标签,但我怀疑它与这个错误有关,因为我从未接触过web.xml

这是我的pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.mycompany.applicationname</groupId>

    <artifactId>Application MVC</artifactId>

    <packaging>war</packaging>

    <version>0.0.1-SNAPSHOT</version>

    <name>Maven Application Webapp</name>

    <url>http://maven.apache.org</url>

    <properties>
        <spring.version>3.0.3.RELEASE</spring.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate.javax.persistence</groupId>
            <artifactId>hibernate-jpa-2.0-api</artifactId>
            <version>1.0.0.Final</version>
        </dependency>

    </dependencies>

    <build>
        <finalName>ApplicationName</finalName>
    </build>
</project>

正如 Funtik 所建议的,我使用 -X 进行了构建。这是堆栈跟踪。

[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error installing artifact's metadata: Error installing metadata: Error updating group repository metadata

expected START_TAG or END_TAG not TEXT (position: TEXT seen ...<extension>war</... @13:25) 
[INFO] ------------------------------------------------------------------------
[DEBUG] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: Error installing artifact's metadata: Error installing metadata: Error updating group repository metadata
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:583)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:499)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:478)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:330)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:291)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:142)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:287)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:592)
    at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
    at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
    at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
    at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.MojoExecutionException: Error installing artifact's metadata: Error installing metadata: Error updating group repository metadata
    at org.apache.maven.plugin.install.InstallMojo.execute(InstallMojo.java:143)
    at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:451)
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:558)
    ... 16 more
Caused by: org.apache.maven.artifact.installer.ArtifactInstallationException: Error installing artifact's metadata: Error installing metadata: Error updating group repository metadata
    at org.apache.maven.artifact.installer.DefaultArtifactInstaller.install(DefaultArtifactInstaller.java:91)
    at org.apache.maven.plugin.install.InstallMojo.execute(InstallMojo.java:105)
    ... 18 more
Caused by: org.apache.maven.artifact.repository.metadata.RepositoryMetadataInstallationException: Error installing metadata: Error updating group repository metadata
    at org.apache.maven.artifact.repository.metadata.DefaultRepositoryMetadataManager.install(DefaultRepositoryMetadataManager.java:463)
    at org.apache.maven.artifact.installer.DefaultArtifactInstaller.install(DefaultArtifactInstaller.java:79)
    ... 19 more
Caused by: org.apache.maven.artifact.repository.metadata.RepositoryMetadataStoreException: Error updating group repository metadata
    at org.apache.maven.artifact.repository.metadata.AbstractRepositoryMetadata.storeInLocalRepository(AbstractRepositoryMetadata.java:76)
    at org.apache.maven.artifact.repository.metadata.DefaultRepositoryMetadataManager.install(DefaultRepositoryMetadataManager.java:459)
    ... 20 more
Caused by: org.codehaus.plexus.util.xml.pull.XmlPullParserException: expected START_TAG or END_TAG not TEXT (position: TEXT seen ...<extension>war</... @13:25) 
    at org.codehaus.plexus.util.xml.pull.MXParser.nextTag(MXParser.java:1083)
    at org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader.parseVersioning(MetadataXpp3Reader.java:513)
    at org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader.parseMetadata(MetadataXpp3Reader.java:352)
    at org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader.read(MetadataXpp3Reader.java:866)
    at org.apache.maven.artifact.repository.metadata.AbstractRepositoryMetadata.updateRepositoryMetadata(AbstractRepositoryMetadata.java:98)
    at org.apache.maven.artifact.repository.metadata.AbstractRepositoryMetadata.storeInLocalRepository(AbstractRepositoryMetadata.java:68)
    ... 21 more
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2 seconds
[INFO] Finished at: Thu Jun 27 17:36:23 SGT 2013
[INFO] Final Memory: 9M/16M
[INFO] ------------------------------------------------------------------------

web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app id="WebApp_ID" version="2.4"
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <display-name>Adjustment Tool</display-name>

    <servlet>
        <servlet-name>mvc-dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>mvc-dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

</web-app>

有什么想法吗?

【问题讨论】:

  • 这只是一个 XML 错误。像 Funtik 所说的那样发布 POM。
  • @Funtik 已经添加了它。请看。
  • 您可以使用-X 选项构建吗?并粘贴异常(如果有)?此外,来自构建的更多控制台日志可能会有所帮助。
  • 请提供 web.xml :)
  • 完成。你能再看看吗?它毁了我的一天。

标签: java spring maven


【解决方案1】:

我遇到了同样的问题,但有错误消息:

TEXT 后面必须紧跟 END_TAG 而不是 START_TAG (位置:已看到 START_T AG ...\r\n
...

这不是因为 \r 或 \n 值。 这是因为有错误的标签订单。例如: 我不得不说:

<a>
  <b1>
    <c1>xx/<c1>
  </b1>

  <b2>xx<b2>
</a>

但我说:

<a>
  <b1>
    <c1>xx/<c1>
    <b2>xx<b2>
  </b1>
</a>

【讨论】:

    【解决方案2】:

    在前一个标签之后有一个很小的空格,这导致了同样的问题。我遇到了&lt;/dependencies&gt; 的问题。

    解决方案:删除空格(下面标记为黄色)起到了神奇的作用。

    特此,我已附上屏幕截图以更正 pom.xml

    【讨论】:

      【解决方案3】:

      好的,我遇到了同样的问题。但我的解决方案有点不同。我从聊天窗口复制了依赖文本,因此可能使用了一些不同的字符而不是空格。我删除了 groupId、artifactID 等之间的所有空格并放入标签中。这解决了问题

      【讨论】:

        【解决方案4】:

        如果您在从Artifactory 的 Maven 远程请求工件时遇到此错误,可以通过启用“抑制 POM 一致性检查”选项来解决:

        【讨论】:

          【解决方案5】:

          元数据已损坏,如下所示:

          </versioning>
          </metadata>
          011</lastUpdated>
          </versioning>
          

          由于我尝试使用 jenkins 集中构建而不是本地构建,因此无法删除旧的元数据文件。这是我找到的解决方案:

          使用 Maven 3 重新运行构建并确保使用有效的 xml 更新元数据。然后恢复构建以使用 Maven 2.2 运行。

          【讨论】:

            【解决方案6】:

            对于遇到类似问题但仍在寻找答案的每个人: 就我而言,这不是一个额外的空间,而是一个不可接受的价值。 这就是导致我的错误的原因:

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <executions>
                  <execution>
                    <id>default-jar</id>
                    <phase>never</phase>
                  </execution>
                </executions>
              </plugin>
            

            指定的值“从不”是不可接受的。只需使用有效值,例如“none”。

            【讨论】:

              【解决方案7】:

              是的,如果您有权访问您的存储库,只需删除该 m2 文件夹即可。

              【讨论】:

                【解决方案8】:

                在我的情况下,问题是由于额外的空格。为了解决此错误,我删除了发生错误的行上标记之前的空格。例如我的 pom.xml 在标记前有 4 个空格,我删除了空格并修复了错误

                【讨论】:

                  【解决方案9】:

                  我刚刚通过从本地存储库中删除该版本的已安装工件来解决此问题。

                  对我来说,原因似乎是从 maven 3 降级到 maven 2。由 maven 3 安装的本地存储库中的 maven 元数据 xml 包含与 maven 2 不兼容的东西(扩展名)。因此,新安装使用 maven 2 导致错误。

                  Maven 的信息可能更准确。就像包含问题的文件的文件路径,例如:)

                  【讨论】:

                    【解决方案10】:

                    您的问题是您的工件 ID 中有一个空格。 试试这个 pom:

                    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
                    
                        <modelVersion>4.0.0</modelVersion>
                        <groupId>com.mycompany.applicationname</groupId>
                        <artifactId>application-mvc</artifactId>
                        <packaging>war</packaging>
                        <version>0.0.1-SNAPSHOT</version>
                        <name>Maven Application Webapp</name>
                        <url>http://maven.apache.org</url>
                    
                        <properties>
                            <spring.version>3.0.3.RELEASE</spring.version>
                        </properties>
                    
                        <dependencies>
                            <dependency>
                                <groupId>org.springframework</groupId>
                                <artifactId>spring-core</artifactId>
                                <version>${spring.version}</version>
                            </dependency>
                    
                            <dependency>
                                <groupId>org.springframework</groupId>
                                <artifactId>spring-web</artifactId>
                                <version>${spring.version}</version>
                            </dependency>
                    
                            <dependency>
                                <groupId>org.springframework</groupId>
                                <artifactId>spring-webmvc</artifactId>
                                <version>${spring.version}</version>
                            </dependency>
                    
                            <dependency>
                                <groupId>org.hibernate.javax.persistence</groupId>
                                <artifactId>hibernate-jpa-2.0-api</artifactId>
                                <version>1.0.0.Final</version>
                            </dependency>
                    
                        </dependencies>
                    
                        <build>
                            <finalName>ApplicationName</finalName>
                        </build>
                    </project>
                    

                    【讨论】:

                    • 其实我项目的pom.xml中,artifactId是没有空格的。但是,当我使用您提供的工件 ID application-mvc 代替 ApplicationMVC 时,错误也消失了。我还发现将版本设置为 1.0.1-SNAPSHOT 也可以消除错误。太奇怪了,为什么 maven 会那样做?
                    猜你喜欢
                    • 2016-11-30
                    • 1970-01-01
                    • 1970-01-01
                    • 2011-11-18
                    • 2012-09-07
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多