Maven2升级到Maven3 java.lang.reflect.InvocationTargetException

11

我想升级到 M3,但有一些问题和很多要解决的问题。我卡在一个特定的失败上。

at org.codehaus.plexus.archiver.AbstractArchiver$1.hasNext(AbstractArchiver.java:467)

那会导致堆栈溢出,然后

ERROR: Failed to parse POMs
hudson.util.IOException2: java.lang.reflect.InvocationTargetException
    at hudson.maven.Maven3Builder.call(Maven3Builder.java:166)
    at hudson.maven.Maven3Builder.call(Maven3Builder.java:70)
    at hudson.remoting.UserRequest.perform(UserRequest.java:118)
    at hudson.remoting.UserRequest.perform(UserRequest.java:48)
    at hudson.remoting.Request$2.run(Request.java:287)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.Exception: java.lang.reflect.InvocationTargetException
    at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:161)
    at hudson.maven.Maven3Builder.call(Maven3Builder.java:112)
    ... 10 more
Caused by: java.lang.reflect.InvocationTargetException
    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:597)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)
    at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:158)
    ... 11 more
Caused by: java.lang.StackOverflowError
    at sun.nio.cs.SingleByteEncoder.encodeArrayLoop(SingleByteEncoder.java:91)
    at sun.nio.cs.SingleByteEncoder.encodeLoop(SingleByteEncoder.java:130)
    at java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:544)
    at sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:252)
    at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:106)
    at java.io.OutputStreamWriter.write(OutputStreamWriter.java:190)
    at java.io.BufferedWriter.flushBuffer(BufferedWriter.java:111)
    at java.io.PrintStream.write(PrintStream.java:476)
    at java.io.PrintStream.print(PrintStream.java:619)
    at org.apache.maven.cli.PrintStreamLogger.info(PrintStreamLogger.java:110)
    at org.codehaus.plexus.logging.AbstractLogger.info(AbstractLogger.java:55)
    at org.codehaus.plexus.archiver.AbstractArchiver$1.hasNext(AbstractArchiver.java:464)
    at org.codehaus.plexus.archiver.AbstractArchiver$1.hasNext(AbstractArchiver.java:467)
    at org.codehaus.plexus.archiver.AbstractArchiver$1.hasNext(AbstractArchiver.java:467)
    at org.codehaus.plexus.archiver.AbstractArchiver$1.hasNext(AbstractArchiver.java:467)
    at org.codehaus.plexus.archiver.AbstractArchiver$1.hasNext(AbstractArchiver.java:467)
    at org.codehaus.plexus.archiver.AbstractArchiver$1.hasNext(AbstractArchiver.java:467)
    at org.codehaus.plexus.archiver.AbstractArchiver$1.hasNext(AbstractArchiver.java:467)
    at org.codehaus.plexus.archiver.AbstractArchiver$1.hasNext(AbstractArchiver.java:467)
    at org.codehaus.plexus.archiver.AbstractArchiver$1.hasNext(AbstractArchiver.java:467)
    at org.codehaus.plexus.archiver.AbstractArchiver$1.hasNext(AbstractArchiver.java:467)...about1000 more

发生了什么事...?


这个问题是由 maven-assembly-plugin 引起的。 - Yugerten
4个回答

13

升级Maven Assembly插件到最新版本解决了我的问题。

<artifactId>maven-assembly-plugin</artifactId>
                <version>2.6</version>

这也解决了我在Eclipse中的问题。 - Miguel Jiménez

3

解决方法,但不是修复:

set MAVEN_OPTS=-Xss2m

我遇到的解决方法是:确保您为Maven Assembly插件指定了版本,并确保它已更新。
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.1</version>

1
堆栈跟踪显示这是一个堆栈溢出错误,请尝试通过在VM参数中添加-Xss5M来增加堆栈大小至5MB或更大。

0
这个失败日志是从在Hudson上运行产生的。你能确保它在命令行上先正常工作吗?那将使事情变得更加容易。此外,如果您想在Hudson上运行,我建议您确保使用新的Maven 3集成,它允许您在自由样式项目中执行Maven 3构建步骤,并且不要使用已被声明为过时的Maven2/3项目类型。

当我从CMD构建时,出现了与org.codehaus.plexus.archiver.AbstractArchiver$1.hasNext(AbstractArchiver.java:467)相同的问题。 它会填充缓冲区,这就是为什么我会得到上述结果的原因。 我不知道它是否与版本有关,还是与在构建Hibernate映射文件时运行的BAT文件有关? - Twitch
好的...尝试从构建中逐个删除插件,以找出问题所在。 - Manfred Moser
@Twitch。从cmd运行时,您在什么时候遇到此错误?您可能需要发布相关的pom片段和其周围的日志。 - Raghuram

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接