Maven阴影和组装插件导致堆栈溢出

时间:2012-05-04 04:29:18

标签: java maven maven-assembly-plugin

我有一个相当简单的RESTEasy客户端应用程序,我试图使用Maven Shade和Assembly插件编译成一个自包含的JAR文件。 Maven将成功打包应用程序,它将启动OK,但最终我收到以下错误:

Exception in thread "main" java.lang.StackOverflowError
    at java.util.regex.ASCII.getType(ASCII.java:199)
    at java.util.regex.ASCII.isType(ASCII.java:203)
    at java.util.regex.Pattern$Ctype.isSatisfiedBy(Pattern.java:3832)
    at java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3715)
    at java.util.regex.Pattern$Curly.match(Pattern.java:4125)
    at java.util.regex.Pattern$GroupHead.match(Pattern.java:4556)
    at java.util.regex.Pattern$Branch.match(Pattern.java:4502)
    at java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3715)
    at java.util.regex.Pattern$Start.match(Pattern.java:3408)
    at java.util.regex.Matcher.search(Matcher.java:1199)
    at java.util.regex.Matcher.find(Matcher.java:618)
    at java.util.Formatter.parse(Formatter.java:2517)
    at java.util.Formatter.format(Formatter.java:2469)
    at java.util.Formatter.format(Formatter.java:2423)
    at java.lang.String.format(String.java:2845)
    at org.jboss.resteasy.client.core.BaseClientResponse.readFrom(BaseClientResponse.java:384)
    at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:346)
    at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:319)
    at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:442)
    at org.jboss.resteasy.client.core.BaseClientResponse.copyFromError(BaseClientResponse.java:94)
    at org.jboss.resteasy.client.ClientResponseFailure.<init>(ClientResponseFailure.java:32)
    at org.jboss.resteasy.client.core.BaseClientResponse.createResponseFailure(BaseClientResponse.java:488)
    at org.jboss.resteasy.client.core.BaseClientResponse.createResponseFailure(BaseClientResponse.java:479)

org.jboss.resteasy.client.core.BaseClientResponse.readFrom(BaseClientResponse.java:384)之后的调用堆栈一遍又一遍地重复,直到内存耗尽。

我的代码不是问题。使用Maven dependency plugin打包时,应用程序运行正常。

我的代码确实依赖于正则表达式命名组(依赖于Java 1.7),但我可以确认Maven和应用程序本身是使用正确的JDK编译和运行的。

任何人都可以解释一个自包含的JAR文件如何导致像这样的堆栈溢出。

0 个答案:

没有答案