12

全部!我需要一些关于我的 eclipse maven 插件发生了什么的帮助。昨天的建造过程运行良好!虽然它今天早上未能建造!我已经用谷歌搜索了,但仍然无法找到发生的事情!我从错误日志中得到了堆栈跟踪;有人可以为我提供一些有关此错误的线索,或者如果可能的话 16386 是什么意思,请提前谢谢!

堆栈跟踪:

java.lang.ArrayIndexOutOfBoundsException: 16386
at org.codehaus.plexus.util.xml.pull.MXParser.parsePI(MXParser.java:2470)
at org.codehaus.plexus.util.xml.pull.MXParser.nextImpl(MXParser.java:1257)
at org.codehaus.plexus.util.xml.pull.MXParser.next(MXParser.java:1105)
at org.codehaus.plexus.util.xml.Xpp3DomBuilder.build(Xpp3DomBuilder.java:179)
at org.codehaus.plexus.util.xml.Xpp3DomBuilder.build(Xpp3DomBuilder.java:86)
4

4 回答 4

21

我擦除了我的~/.m2/文件夹,然后重新运行,Maven 重新下载了所有内容 - 为我工作!

于 2017-04-26T15:02:27.700 回答
10

16386 是数组中的索引。问题是数组没有16386那么大。(即数组的大小<16387)

无论如何,它不会帮助你解决这个问题。

你可以检查你的 pom.xml 是否包含这个(并且它是有效的):

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

编辑

你的问题肯定是本地问题。所以首先检查你的 maven 配置文件的有效性:

  • .m2/settings.xml
  • M2_HOME/conf/settings.xml

如果这些看起来不错,那么问题也可能是由本地存储库中的“损坏”(坏 XML)pom.xml 引起的......最简单的解决方法是擦除 ~/.m2/repository,让 Maven重新下载一切。

于 2013-07-29T06:25:19.023 回答
0

我也遇到了这个问题(甚至mvn clean -U失败了),它通常是在我向pom.xml文件添加新依赖项时开始的。

奇怪的是,注释掉依赖并不能解决问题,只有删除它(以及与之相关的任何注释)才能解决问题。

注意:我通过“锁定插件版本以避免使用 Maven 默认值(可能移至父 pom)”为各种 Maven 插件使用固定版本。像这样:

<build>
  <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
        <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
        <plugin>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.7.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
      </plugins>
    </pluginManagement>
    ...
  </build>

除了一些依赖项外,这工作得很好。包含这些依赖项的唯一解决方案是从 pluginManagement 中删除固定版本。我想有可能找到用于到达插件的正确版本,但这似乎很困难(对此有什么建议吗?)。

mvn -version
Apache Maven 3.6.0
Maven home: /usr/share/maven
Java version: 1.8.0_265, vendor: Private Build, runtime: /usr/lib/jvm/java-8-openjdk-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.15.0-112-generic", arch: "amd64", family: "unix"

mvn clean
...
[INFO] Scanning for projects...
[ERROR] Internal error: java.lang.ArrayIndexOutOfBoundsException: 8294 -> [Help 1]
org.apache.maven.InternalErrorException: Internal error: java.lang.ArrayIndexOutOfBoundsException: 8294
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:120)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 8294
    at org.codehaus.plexus.util.xml.pull.MXParser.parsePI (MXParser.java:2502)
    at org.codehaus.plexus.util.xml.pull.MXParser.nextImpl (MXParser.java:1283)
    at org.codehaus.plexus.util.xml.pull.MXParser.next (MXParser.java:1131)
    at org.codehaus.plexus.util.xml.pull.MXParser.nextTag (MXParser.java:1116) ...

类似问题:

类似的 SO 问题:

于 2020-08-18T10:12:21.257 回答
0

就我而言,一个新添加的依赖项导致了 this( jsonPath) - 我删除了它并实现了相同的要求,jsons-simple然后它就起作用了。

于 2021-12-17T06:20:57.443 回答