maven打包栈溢出的问题

今天使用mvn打包Java项目的时候,出现了栈溢出,部分错误日志如下:

Exception in thread "main" java.lang.StackOverflowError
	at java.util.regex.Pattern$Branch.match(Pattern.java:4502)
	at java.util.regex.Pattern$GroupHead.match(Pattern.java:4556)
	at java.util.regex.Pattern$Loop.match(Pattern.java:4683)
	at java.util.regex.Pattern$GroupTail.match(Pattern.java:4615)
	at java.util.regex.Pattern$BranchConn.match(Pattern.java:4466)
	at java.util.regex.Pattern$CharProperty.match(Pattern.java:3694)
	at java.util.regex.Pattern$Branch.match(Pattern.java:4502)
	at java.util.regex.Pattern$GroupHead.match(Pattern.java:4556)

解决方法:
调整maven的栈大小
通过which mvn找到mvn命令

[email protected]_jumper:~# which mvn
/usr/local/maven/bin/mvn

编辑/usr/local/maven/bin/mvn,在文件开头添加MAVEN_OPTS环境变量,

# -----------------------------------------------------------------------------
# Apache Maven Startup Script
#
# Environment Variable Prerequisites
#
#   JAVA_HOME       Must point at your Java Development Kit installation.
#   MAVEN_OPTS      (Optional) Java runtime options used when Maven is executed.
#   MAVEN_SKIP_RC   (Optional) Flag to disable loading of mavenrc files.
# -----------------------------------------------------------------------------
MAVEN_OPTS="-Xss10240k"

再次打包,成功。如果这个值还是提示栈溢出的话,可以考虑继续调整Xss的大小,或者在代码层面找原因。