基本构建命令
mvn validate
- 验证项目是否正确且所有必要信息都可用。
- 用于确保 pom.xml 文件和项目结构的正确性。
mvn compile
- 编译项目的源代码。
- 将 src/main/java 目录下的源代码编译到 target/classes 目录中。
mvn test
- 使用适当的单元测试框架(如 JUnit)运行测试,不需要打包。
- 将 src/test/java 目录下的测试代码编译并运行测试。
mvn package
- 将编译好的代码打包成可分发的格式,如 JAR、WAR 等。
- 生成的包文件通常位于 target 目录中。
mvn verify
- 运行集成测试,验证打包是否有效且符合质量标准。
- 包含执行 mvn test 和其他验证任务。
mvn install
- 将打包的构件安装到本地仓库,以供本地其他项目使用。
- 本地仓库通常位于用户目录下的 .m2/repository 目录中。
mvn deploy
- 将最终的构件复制到远程仓库,以便在共享的环境中使用。
- 通常在持续集成和发布过程中使用。
清理命令
mvn clean
- 移除上一次构建生成的所有文件。
- 删除 target 目录,使项目干净。
项目信息和依赖管理命令
mvn dependency:tree
- 显示项目的依赖树,方便查看依赖关系和解决依赖冲突。
- 用于调试依赖问题。
mvn dependency:list
- 列出项目的所有依赖。
- 详细显示每个依赖的版本和作用域。
mvn dependency:analyze
- 分析项目的依赖,显示未使用的依赖和未声明的依赖。
- 帮助优化 pom.xml 文件中的依赖声明。
插件命令
mvn exec:java
- 使用 exec-maven-plugin 运行 Java 主类。
- 需要在 pom.xml 中配置主类信息。
mvn site
- 生成项目的站点文档,包括项目报告、代码文档、依赖报告等。
- 生成的站点文档位于 target/site 目录中。
mvn javadoc:javadoc
- 使用 javadoc 插件生成项目的 Java 文档。
- 生成的 Java 文档位于 target/site/apidocs 目录中。
其他常用命令
mvn help:describe -Dplugin=
- 显示指定插件的详细信息和可用目标(goals)。
- 例如,mvn help:describe -Dplugin=clean 显示 clean 插件的信息。
mvn versions:display-dependency-updates
- 显示项目依赖的更新版本信息。
- 帮助保持依赖库的最新状态。
mvn archetype:generate
- 使用原型(Archetype)生成项目骨架。
- 适用于快速创建新项目。
当你运行 mvn package 命令时,Maven 会进行如下操作:
- 编译 src/main/java 下的源代码,生成 target/classes 目录下的 .class 文件。
- 编译 src/test/java 下的测试代码,生成 target/test-classes 目录下的 .class 文件。
- 运行测试代码,确保测试通过。
- 将 target/classes 目录下的编译结果打包成 JAR 文件(例如
target/my-app-1.0-SNAPSHOT.jar)。
最终生成的 JAR 文件中只包含 src/main/java 目录下的编译结果,不包含 src/test/java 目录下的测试代码。