Maven构建报错Exit value:3,排查环境及多版本Node后仍未解决
Maven构建Angular项目报错Exit value:3的排查方案
环境信息
- Eclipse:2021年9月版
- JDK:1.8
- Node:14.20
- NPM:6.14.17
- Angular CLI:9.1.15(全局版本为15.2.8)
报错详情
[ERROR] Command execution failed. org.apache.commons.exec.ExecuteException: Process exited with an error: 3 (Exit value: 3) at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:404) at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:166) at org.codehaus.mojo.exec.ExecMojo.executeCommandLine(ExecMojo.java:764) at org.codehaus.mojo.exec.ExecMojo.executeCommandLine(ExecMojo.java:711) at org.codehaus.mojo.exec.ExecMojo.execute(ExecMojo.java:289) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:957) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:289) at org.apache.maven.cli.MavenCli.main(MavenCli.java:193) 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:282) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)
已尝试操作
- 切换Node.js 14、16、18、20多个版本及对应NPM、Angular CLI版本构建,问题未解决
- 确认当前未处于VPN环境
- 已安装项目要求版本的Node.js、NPM、Angular CLI
排查解决步骤
1. 清理Node依赖缓存
- 执行命令清理NPM缓存:
npm cache clean --force - 删除项目根目录下的
node_modules文件夹和package-lock.json文件 - 重新安装依赖:
npm install
2. 统一Angular CLI版本
全局与本地Angular CLI版本差异过大易引发冲突:
- 卸载全局Angular CLI:
npm uninstall -g @angular/cli - 安装项目要求的9.1.15版本全局CLI:
npm install -g @angular/cli@9.1.15 - 进入项目目录,同步本地CLI版本:
npm install @angular/cli@9.1.15 --save-dev
3. 精准配置Maven Exec插件
在pom.xml中明确指定Node和Angular CLI的调用路径,避免系统自动版本干扰:
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>3.0.0</version> <executions> <execution> <id>angular-build</id> <goals> <goal>exec</goal> </goals> <phase>prepare-package</phase> <configuration> <!-- 替换为你的Node.exe绝对路径 --> <executable>C:\Program Files\nodejs\node.exe</executable> <arguments> <argument>node_modules/@angular/cli/bin/ng</argument> <argument>build</argument> </arguments> </configuration> </execution> </executions> </plugin>
4. 清理Maven缓存并重新构建
- 删除本地Maven仓库缓存(默认路径:
~/.m2/repository) - 执行Maven强制更新命令:
mvn clean install -U
5. 校准系统环境变量
- 确保项目要求的Node.js版本路径在系统
PATH环境变量中优先级最高,避免自动更新版本被优先调用 - 执行
node -v和npm -v验证当前生效版本是否符合项目要求
补充排查方向
若以上步骤无效,执行mvn clean install -X获取Maven详细日志,定位Angular构建阶段的具体错误点,进一步排查依赖、构建配置等问题。
内容的提问来源于stack exchange,提问作者Jas
相关产品推荐
相关产品推荐

