本地AEM 6.5.12实例执行Maven构建遇npm相关错误
AEM 6.5.12 生成WKND项目Maven构建报错排查
问题场景
我在本地AEM 6.5.12实例中执行以下Maven命令生成WKND Sites项目:
mvn -B org.apache.maven.plugins:maven-archetype-plugin:3.2.1:generate -D archetypeGroupId=com.adobe.aem -D archetypeArtifactId=aem-project-archetype -D archetypeVersion=35 -D appTitle="WKND Sites Project" -D appId="wknd" -D groupId="com.adobe.aem.guides" -D artifactId="aem-guides-wknd" -D package="com.adobe.aem.guides.wknd" -D version="0.0.1-SNAPSHOT" -D aemVersion="6.5.12"
初始错误:无法下载NPM
构建失败,核心错误日志如下:
[INFO] Reactor Summary for WKND Sites Project 0.0.1-SNAPSHOT: [INFO] [INFO] WKND Sites Project ................................. SUCCESS [ 0.457 s] [INFO] WKND Sites Project - Core .......................... SUCCESS [ 18.337 s] [INFO] WKND Sites Project - UI Frontend ................... FAILURE [ 1.389 s] [INFO] WKND Sites Project - Repository Structure Package .. SKIPPED [INFO] WKND Sites Project - UI apps ....................... SKIPPED [INFO] WKND Sites Project - UI content .................... SKIPPED [INFO] WKND Sites Project - UI config ..................... SKIPPED [INFO] WKND Sites Project - All ........................... SKIPPED [INFO] WKND Sites Project - Integration Tests ............. SKIPPED [INFO] WKND Sites Project - Dispatcher .................... SKIPPED [INFO] WKND Sites Project - UI Tests ...................... SKIPPED [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 22.499 s [INFO] Finished at: 2022-09-22T11:20:18-04:00 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.12.0:install-node-and-npm (install node and npm) on project aem-guides-wknd.ui.frontend: Could not download npm: Could not download https://registry.npmjs.org/npm/-/npm-6.17.14.tgz: Unknown host No such host is known (registry.npmjs.org) -> [Help 1]
根pom.xml中frontend-maven-plugin相关配置片段:
<plugin> <groupId>com.github.eirslett</groupId> <artifactId>frontend-maven-plugin</artifactId> <version>${frontend-maven-plugin.version}</version> <configuration> <nodeVersion>v12.22.7</nodeVersion> <npmVersion>6.17.14</npmVersion> </configuration> <executions> <execution> <id>install node and npm</id> <goals> <goal>install-node-and-npm</goal> </goals> </execution> <execution> <id>npm install</id> <goals> <goal>npm</goal> </goals> </execution> </executions> </plugin>
已做排查操作:
- 修正
JAVA_HOME指向JDK(原配置指向JRE) - 尝试修改ui文件夹pom.xml的npm版本从6.4.1改为3.10.8(该方案对他人有效,但我执行后仍报错)
更新后错误:npm run prod执行失败
修改pom.xml的npmVersion后重新构建,出现新错误:
[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.12.0:npm (npm run prod) on project aem-guides-wknd.ui.frontend: Failed to run task: 'npm run prod' failed. org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)
解决方案建议
针对初始网络错误(无法访问registry.npmjs.org)
- 验证本地网络连通性:在终端执行
ping registry.npmjs.org,确认是否能正常访问官方源 - 配置国内npm镜像:在
frontend-maven-plugin的configuration节点中添加镜像地址,避免网络限制:<configuration> <nodeVersion>v12.22.7</nodeVersion> <npmVersion>6.14.15</npmVersion> <npmRegistryUrl>https://registry.npmmirror.com/</npmRegistryUrl> </configuration> - 手动下载依赖:提前下载对应版本的node和npm,放置到Maven插件默认缓存目录(一般为
~/.m2/repository/com/github/eirslett/node/和~/.m2/repository/com/github/eirslett/npm/),跳过插件自动下载步骤
针对npm run prod执行失败
- 查看详细错误日志:进入
ui.frontend目录,手动执行npm install和npm run prod,直接获取npm层面的具体报错信息(如依赖缺失、版本冲突等) - 匹配node与npm兼容版本:v12.22.7官方推荐搭配npm 6.14.15,修改pom.xml中的
npmVersion为该版本后重试 - 清理缓存重试:执行
mvn clean,同时删除ui.frontend目录下的node_modules文件夹和package-lock.json文件,重新执行构建命令
内容的提问来源于stack exchange,提问作者linnse
相关产品推荐
相关产品推荐

