mvn install -N仅仅构建当前目录下父POM下模块

命令

部分 含义
mvn 调用 Maven 命令行工具
install 执行 install 生命周期阶段,将构建的产物(jar、pom 等)安装到本地仓库中
-N--non-recursive 表示 不递归构建子模块(Non-recursive build)

效果

当项目是一个 多模块(multi-module)Maven 项目 时,
运行:

1
mvn install

会递归构建所有子模块。

而:

1
mvn install -N

只会构建 当前目录下的父 POM(聚合模块),不会进入子模块构建。


场景

  1. 安装父 POM 到本地仓库

    • 在多模块项目中,子模块的 pom.xml 通常依赖父 POM。

    • 如果父 POM 没有先安装到本地仓库,子模块构建时会报:

      Could not find artifact xxx:pom:version
      
    • 所以先执行:

      1
      mvn install -N

      把父 POM 安装进本地仓库,再构建子模块。

  2. 快速更新父 POM

    • 仅更新版本或依赖管理部分时,不需要重编译整个项目。
  3. 验证父 POM 结构

    • 检查依赖管理、插件管理部分是否正确。

示例

假设你的目录结构:

metersphere/
├── pom.xml        # 父 POM
├── metersphere-api/
│   └── pom.xml
└── metersphere-ui/
    └── pom.xml

构建步骤应为:

1
2
3
4
5
# 1. 安装父 POM
mvn install -N

# 2. 构建子模块
mvn clean install -DskipTests

小结

命令 说明
mvn install 递归构建当前项目及所有子模块
mvn install -N 只构建当前目录(通常为父 POM),不构建子模块