项目场景:
个人IDEA的一个习惯就是使用git bash的命令行(主要是第一个觉得好看,第二个是linux 命令ls 和ll不香吗,我要去用dir?)
问题描述:
配置好git bash后,使用mvn打包一个超大项目(我之前配置过mvn.cmd的堆空间大小)。因为在不设置的情况下使用默认的堆空间大小会导致oom(Out Of Memory),所以这个时候需要调整足够的空间去完成打包。那么我调整为git Bash后又出现了oom,这是为什么呢?
原因分析:
原来,我们通过设置git bash 作为我们的命令行的时候,mvn的启动程序也换成了linux下的mvn,而之前我去设置的windows的命令mvn.bat。所以自然不会对mvn这个启动脚本有什么影响。(提醒我下次注意平台)
解决方案:
解决方案如下:
使用文本编辑器打开mvn脚本(IDEA就可以,直接拖进去就可以了),加上这个脚本,我们回到terminal中使用的mvn命令就可以了。
#在这里加上下面这一行脚本即可。174行
MAVEN_OPTS="$MAVEN_OPTS -Xms1024m -Xmx1024m"
MAVEN_PROJECTBASEDIR="${MAVEN_BASEDIR:-`find_maven_basedir "$@"`}"
MAVEN_OPTS="`concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config"` $MAVEN_OPTS"
所有文件所在位置
-
设置git bash的方式:file -> settings -> terminal(这里搜索,比较方便。也可以直接在Tools下找到terminal) -> 在shell Path 中选择git bash(git安装目录下的bin下找到) -> 在后方添加–login i -> 恭喜你可以使用ll命令了(不加 --login i不能使用ll命令)
-
设置maven的mvn脚本:位置在mvn 安装目录下 bin目录下即可
-
附带一个windows的设置脚本:
#添加在这儿,35行
set MAVEN_OPTS=-Xms1024m -Xmx1024m
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%"=="" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat"
if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd