Maven命令速查:20个必备操作与实用技巧
介绍Maven是Java应用程序中最受欢迎的项目和依赖管理工具之一。Maven提供了许多命令和选项,可以帮助你应对日常任务。
这个备忘单使用一个样本Maven项目来演示一些有用的Maven命令。它最初是针对OpenJDK 13.0.1和Maven 3.6.3编写的。这些命令已经在OpenJDK 19.0.1和Maven 3.8.7上进行了验证。
Maven 命令速查表
清理mvnThis command cleans the Maven project by deleting the target directory:
- mvn clean
Example of the output:
Output
[INFO] — maven-clean-plugin:2.5:clean (default-clean) @ maven-example-jar — [INFO] Deleting /Users/sammy/Desktop/maven-examples/maven-example-jar/target [INFO] ———————————————————————— [INFO] BUILD SUCCESS [INFO] ————————————————————————
mvn compiler:compileThis command compiles the Java source classes of the Maven project:
- mvn compiler:compile
Example of the output:
Output
[INFO] — maven-compiler-plugin:3.8.1:compile (default-cli) @ maven-example-jar — [INFO] Changes detected – recompiling the module! [INFO] Compiling 1 source file to /Users/sammy/Desktop/maven-examples/maven-example-jar/target/classes [INFO] ———————————————————————— [INFO] BUILD SUCCESS [INFO] ————————————————————————
mvn compiler:testCompileThis command compiles the test classes of the Maven project:
- mvn compiler:testCompile
Example of the output:
Output
[INFO] — maven-compiler-plugin:3.8.1:testCompile (default-cli) @ maven-example-jar — [INFO] Changes detected – recompiling the module! [INFO] Compiling 1 source file to /Users/sammy/Desktop/maven-examples/maven-example-jar/target/test-classes [INFO] ———————————————————————— [INFO] BUILD SUCCESS [INFO] ————————————————————————
mvn packageThis command builds the Maven project and packages it into a JAR, WAR, etc.:
- mvn package
Example of the output:
Output
[INFO] — maven-compiler-plugin:3.8.1:compile (default-compile) @ maven-example-jar — [INFO] Changes detected – recompiling the module! [INFO] Compiling 1 source file to /Users/sammy/Desktop/maven-examples/maven-example-jar/target/classes … [INFO] — maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ maven-example-jar — [INFO] Changes detected – recompiling the module! [INFO] Compiling 1 source file to /Users/sammy/Desktop/maven-examples/maven-example-jar/target/test-classes … [INFO] — maven-surefire-plugin:2.12.4:test (default-test) @ maven-example-jar — [INFO] Surefire report directory: /Users/sammy/Desktop/maven-examples/maven-example-jar/target/surefire-reports ——————————————————- T E S T S ——————————————————- Running com.example.maven.classes.AppTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.005 sec Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] — maven-jar-plugin:2.4:jar (default-jar) @ maven-example-jar — [INFO] Building jar: /Users/sammy/Desktop/maven-examples/maven-example-jar/target/maven-example-jar-0.0.1-SNAPSHOT.jar [INFO] ———————————————————————— [INFO] BUILD SUCCESS
The output shows the location of the JAR file just before the “BUILD SUCCESS” message. Notice the package goal executes compile, testCompile, and test goals before packaging the build.
mvn install
这是文章《Maven命令大全:20个必备操作指南》的第2部分(共5部分)。
此命令用于构建Maven项目并将项目文件(JAR、WAR、pom.xml等)安装到本地仓库:
mvn install
输出示例:
输出
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ maven-example-jar ---
...
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ maven-example-jar ---
...
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ maven-example-jar ---
...
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ maven-example-jar ---
...
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ maven-example-jar ---
...
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ maven-example-jar ---
...
[INFO] --- maven-install-plugin:2.4:install (default-install) @ maven-example-jar ---
[INFO] Installing /Users/sammy/Desktop/maven-examples/maven-example-jar/target/maven-example-jar-0.0.1-SNAPSHOT.jar to /Users/sammy/.m2/repository/com/example/maven/maven-example-jar/0.0.1-SNAPSHOT/maven-example-jar-0.0.1-SNAPSHOT.jar
[INFO] Installing /Users/sammy/Desktop/maven-examples/maven-example-jar/pom.xml to /Users/sammy/.m2/repository/com/example/maven/maven-example-jar/0.0.1-SNAPSHOT/maven-example-jar-0.0.1-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
mvn deploy
此命令将构建产物部署到远程仓库:
mvn deploy
远程仓库应在项目的pom.xml文件的distributionManagement
标签中正确配置。Maven settings.xml
文件中的服务器条目用于提供认证详细信息。
mvn validate
此命令验证Maven项目,以确保一切正确且所有必要信息都可用:
mvn validate
mvn dependency:tree
此命令生成Maven项目的依赖树:
mvn dependency:tree
输出示例:
输出
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ Mockito-Examples ---
[INFO] com.example.mockito:Mockito-Examples:jar:1.0-SNAPSHOT
[INFO] +- org.junit.platform:junit-platform-runner:jar:1.2.0:test
[INFO] | +- org.apiguardian:apiguardian-api:jar:1.0.0:test
[INFO] | +- org.junit.platform:junit-platform-launcher:jar:1.2.0:test
[INFO] | \- org.junit.platform:junit-platform-suite-api:jar:1.2.0:test
[INFO] | \- org.junit.platform:junit-platform-commons:jar:1.2.0:test
[INFO] +- org.junit.jupiter:junit-jupiter-engine:jar:5.2.0:test
[INFO] | +- org.junit.platform:junit-platform-engine:jar:1.2.0:test
[INFO] | | \- org.opentest4j:opentest4j:jar:1.1.0:test
[INFO] | \- org.junit.jupiter:junit-jupiter-api:jar:5.2.0:test
[INFO] +- org.mockito:mockito-junit-jupiter:jar:2.19.0:test
[INFO] | \- org.mockito:mockito-core:jar:2.19.0:test
[INFO] | +- net.bytebuddy:byte-buddy:jar:1.8.10:test
[INFO] | +- net.bytebuddy:byte-buddy-agent:jar:1.8.10:test
[INFO] | \- org.objenesis:objenesis:jar:2.6:test
[INFO] \- org.testng:testng:jar:6.14.3:test
[INFO] +- com.beust:jcommander:jar:1.72:test
[INFO] \- org.apache-extras.beanshell:bsh:jar:2.0b6:test
mvn dependency:analyze
此命令分析Maven项目,以识别未使用的已声明依赖项和已使用但未声明的依赖项:
mvn dependency:analyze
输出示例:
输出
[INFO] — maven-dependency-plugin:2.8:analyze (default-cli) @ Mockito-Examples —
[WARNING] Used undeclared dependencies found:
[WARNING] org.junit.jupiter:junit-jupiter-api:jar:5.2.0:test
[WARNING] org.mockito:mockito-core:jar:2.19.0:test
[WARNING] Unused declared dependencies found:
[WARNING] org.junit.platform:junit-platform-runner:jar:1.2.0:test
[WARNING] org.junit.jupiter:junit-jupiter-engine:jar:5.2.0:test
[WARNING] org.mockito:mockito-junit-jupiter:jar:2.19.0:test
通过识别未使用的依赖并将其从 `pom.xml` 文件中移除,这有助于减小构建大小。
mvn archetype:generate
此命令用于生成不同类型的骨架Maven项目,例如JAR、Web应用程序、Maven站点等:
- mvn archetype:generate
输出示例:
输出
[INFO] —————————————————————————-
[INFO] Using following parameters for creating project from Archetype: maven-archetype-quickstart:1.4
[INFO] —————————————————————————-
…
[INFO] Project created from Archetype in dir: /Users/sammy/Desktop/maven-examples/maven-example-jar
[INFO] ————————————————————————
[INFO] BUILD SUCCESS
推荐阅读:使用Maven Archetypes创建Java项目
mvn site:site
此命令为项目生成一个站点:
- mvn site:site
执行此命令后,您会注意到 `target` 目录下会有一个 `site` 目录。
/Users/sammy/Desktop/maven-examples/maven-example-jar/target/site/index.html
`site` 目录中会有多个HTML文件,提供与项目相关的信息。
mvn test
此命令运行项目的测试用例:
- mvn test
输出示例:
输出
[INFO] ——————————————————-
[INFO] T E S T S
[INFO] ——————————————————-
[INFO] Running TestSuite first-element second-element Employee setName Argument = Sammy
…
[INFO] Results:
[INFO]
[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ————————————————————————
[INFO] BUILD SUCCESS
mvn compile
此命令编译项目的Java源代码:
- mvn compile
输出示例:
输出
[INFO] — maven-compiler-plugin:3.7.0:compile (default-compile) @ Mockito-Examples —
[INFO] Changes detected – recompiling the module!
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 10 source files to /Users/sammy/Desktop/maven-examples/Mockito-Examples/target/classes
它类似于之前的 `mvn compiler:compile` 命令,但会运行整个Maven生命周期直到编译阶段。
mvn verify
此命令构建项目,运行所有测试用例,并对集成测试结果进行任何检查,以确保满足质量标准:
- mvn verify
Maven选项
Maven提供了许多命令行选项来改变Maven构建过程:
mvn -help
Maven命令大全:20个必备操作指南 [API调用失败]
这是文章《Maven命令大全:20个必备操作指南 [API调用失败]》的第4部分(共5部分)。
mvn -help
:显示Maven使用帮助和所有可用选项
$ mvn -help
此命令行选项将打印Maven的使用说明和所有可用选项。
输出示例:
输出
usage: mvn [options] [<goal(s)>] [<phase(s)>]
Options:
-am,--also-make 如果指定了项目列表,同时构建列表所需的项目
-amd,--also-make-dependents 如果指定了项目列表,同时构建依赖于列表中的项目的项目
-B,--batch-mode 以非交互(批处理)模式运行(禁用输出颜色)
-b,--builder <arg> 要使用的构建策略ID
-C,--strict-checksums 如果校验和不匹配,则构建失败
-c,--lax-checksums 如果校验和不匹配,则发出警告
-cpu,--check-plugin-updates 无效,仅为向后兼容保留
mvn -f dir/pom.xml package
:从不同位置构建项目
$ mvn -f dir/pom.xml package
此命令行选项允许您从指定位置的pom.xml
文件构建项目。当您需要从脚本运行Maven构建时,此功能非常有用。
mvn -o package
:以离线模式运行Maven构建
$ mvn -o package
此命令行选项以离线模式运行Maven构建。当您本地仓库中已下载所有必需的JAR包,并且不希望Maven从远程仓库查找任何JAR包时,此功能非常有用。
mvn -q package
:以安静模式运行Maven构建
$ mvn -q package
此命令行选项以安静模式运行Maven构建,因此只显示测试用例结果和错误信息。
mvn -X package
:打印Maven版本并以调试模式运行构建
$ mvn -X package
此命令行选项将打印Maven版本信息,并以调试模式运行构建,从而显示所有详细消息。
输出示例:
输出
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Mvn home: /Users/sammy/Downloads/apache-maven-3.6.3
Java version: 13.0.1, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home
Default locale: en_IN, platform encoding: UTF-8
OS name: "mac os x", version: "10.15.1", arch: "x86_64", family: "mac"
[DEBUG] Created new class realm maven.api
[DEBUG] Importing foreign packages into class realm maven.api
[DEBUG] Imported: javax.annotation.* < plexus.core
[DEBUG] Imported: javax.annotation.security.* < plexus.core
[DEBUG] Imported: javax.enterprise.inject.* < plexus.core
[DEBUG] Imported: javax.enterprise.util.* < plexus.core
[DEBUG] Imported: javax.inject.* < plexus.core
mvn -v
:显示Maven版本信息
$ mvn -v
此命令行选项显示Maven的版本信息。
输出示例:
输出
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Mvn home: /Users/sammy/Downloads/apache-maven-3.6.3
Java version: 13.0.1, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home
Default locale: en_IN, platform encoding: UTF-8
OS name: "mac os x", version: "10.15.1", arch: "x86_64", family: "mac"
mvn -V package
:显示Maven版本并运行构建
(此部分原文内容缺失,根据标题推测其功能与mvn -v
和mvn package
的组合类似,但通常-V
参数在Maven中并不单独用于运行构建,更常见的是-v
或--version
。若需补充,请提供具体原文内容。)
此命令行选项会打印Maven版本,然后继续构建:
- mvn -V package
这等同于以下命令:
- mvn -v;mvn package
mvn -DskipTests package
此命令行选项通过应用skipTests
系统属性来跳过构建周期中的单元测试用例:
- mvn -DskipTests package
您也可以通过以下方式跳过测试用例的执行:
- mvn -Dmaven.test.skip=true package
mvn -T 4 clean install
此命令行选项告诉Maven使用指定的线程数进行并行构建:
- mvn -T 4 clean install
这在多模块项目中非常有用,模块可以并行构建,从而缩短项目的构建时间。
参考资料
- Maven 插件
- Maven 命令行选项参考

清理mvnThis command cleans the Maven project by deleting the target directory:
- mvn clean
Example of the output:
[INFO] — maven-clean-plugin:2.5:clean (default-clean) @ maven-example-jar — [INFO] Deleting /Users/sammy/Desktop/maven-examples/maven-example-jar/target [INFO] ———————————————————————— [INFO] BUILD SUCCESS [INFO] ————————————————————————
mvn compiler:compileThis command compiles the Java source classes of the Maven project:
- mvn compiler:compile
Example of the output:
[INFO] — maven-compiler-plugin:3.8.1:compile (default-cli) @ maven-example-jar — [INFO] Changes detected – recompiling the module! [INFO] Compiling 1 source file to /Users/sammy/Desktop/maven-examples/maven-example-jar/target/classes [INFO] ———————————————————————— [INFO] BUILD SUCCESS [INFO] ————————————————————————
mvn compiler:testCompileThis command compiles the test classes of the Maven project:
- mvn compiler:testCompile
Example of the output:
[INFO] — maven-compiler-plugin:3.8.1:testCompile (default-cli) @ maven-example-jar — [INFO] Changes detected – recompiling the module! [INFO] Compiling 1 source file to /Users/sammy/Desktop/maven-examples/maven-example-jar/target/test-classes [INFO] ———————————————————————— [INFO] BUILD SUCCESS [INFO] ————————————————————————
mvn packageThis command builds the Maven project and packages it into a JAR, WAR, etc.:
- mvn package
Example of the output:
[INFO] — maven-compiler-plugin:3.8.1:compile (default-compile) @ maven-example-jar — [INFO] Changes detected – recompiling the module! [INFO] Compiling 1 source file to /Users/sammy/Desktop/maven-examples/maven-example-jar/target/classes … [INFO] — maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ maven-example-jar — [INFO] Changes detected – recompiling the module! [INFO] Compiling 1 source file to /Users/sammy/Desktop/maven-examples/maven-example-jar/target/test-classes … [INFO] — maven-surefire-plugin:2.12.4:test (default-test) @ maven-example-jar — [INFO] Surefire report directory: /Users/sammy/Desktop/maven-examples/maven-example-jar/target/surefire-reports ——————————————————- T E S T S ——————————————————- Running com.example.maven.classes.AppTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.005 sec Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] — maven-jar-plugin:2.4:jar (default-jar) @ maven-example-jar — [INFO] Building jar: /Users/sammy/Desktop/maven-examples/maven-example-jar/target/maven-example-jar-0.0.1-SNAPSHOT.jar [INFO] ———————————————————————— [INFO] BUILD SUCCESS
The output shows the location of the JAR file just before the “BUILD SUCCESS” message. Notice the package goal executes compile, testCompile, and test goals before packaging the build.
mvn install
这是文章《Maven命令大全:20个必备操作指南》的第2部分(共5部分)。
此命令用于构建Maven项目并将项目文件(JAR、WAR、pom.xml等)安装到本地仓库:
mvn install
输出示例:
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ maven-example-jar ---
...
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ maven-example-jar ---
...
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ maven-example-jar ---
...
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ maven-example-jar ---
...
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ maven-example-jar ---
...
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ maven-example-jar ---
...
[INFO] --- maven-install-plugin:2.4:install (default-install) @ maven-example-jar ---
[INFO] Installing /Users/sammy/Desktop/maven-examples/maven-example-jar/target/maven-example-jar-0.0.1-SNAPSHOT.jar to /Users/sammy/.m2/repository/com/example/maven/maven-example-jar/0.0.1-SNAPSHOT/maven-example-jar-0.0.1-SNAPSHOT.jar
[INFO] Installing /Users/sammy/Desktop/maven-examples/maven-example-jar/pom.xml to /Users/sammy/.m2/repository/com/example/maven/maven-example-jar/0.0.1-SNAPSHOT/maven-example-jar-0.0.1-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
mvn deploy
此命令将构建产物部署到远程仓库:
mvn deploy
远程仓库应在项目的pom.xml文件的distributionManagement
标签中正确配置。Maven settings.xml
文件中的服务器条目用于提供认证详细信息。
mvn validate
此命令验证Maven项目,以确保一切正确且所有必要信息都可用:
mvn validate
mvn dependency:tree
此命令生成Maven项目的依赖树:
mvn dependency:tree
输出示例:
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ Mockito-Examples ---
[INFO] com.example.mockito:Mockito-Examples:jar:1.0-SNAPSHOT
[INFO] +- org.junit.platform:junit-platform-runner:jar:1.2.0:test
[INFO] | +- org.apiguardian:apiguardian-api:jar:1.0.0:test
[INFO] | +- org.junit.platform:junit-platform-launcher:jar:1.2.0:test
[INFO] | \- org.junit.platform:junit-platform-suite-api:jar:1.2.0:test
[INFO] | \- org.junit.platform:junit-platform-commons:jar:1.2.0:test
[INFO] +- org.junit.jupiter:junit-jupiter-engine:jar:5.2.0:test
[INFO] | +- org.junit.platform:junit-platform-engine:jar:1.2.0:test
[INFO] | | \- org.opentest4j:opentest4j:jar:1.1.0:test
[INFO] | \- org.junit.jupiter:junit-jupiter-api:jar:5.2.0:test
[INFO] +- org.mockito:mockito-junit-jupiter:jar:2.19.0:test
[INFO] | \- org.mockito:mockito-core:jar:2.19.0:test
[INFO] | +- net.bytebuddy:byte-buddy:jar:1.8.10:test
[INFO] | +- net.bytebuddy:byte-buddy-agent:jar:1.8.10:test
[INFO] | \- org.objenesis:objenesis:jar:2.6:test
[INFO] \- org.testng:testng:jar:6.14.3:test
[INFO] +- com.beust:jcommander:jar:1.72:test
[INFO] \- org.apache-extras.beanshell:bsh:jar:2.0b6:test
mvn dependency:analyze
此命令分析Maven项目,以识别未使用的已声明依赖项和已使用但未声明的依赖项:
mvn dependency:analyze
输出示例:
[INFO] — maven-dependency-plugin:2.8:analyze (default-cli) @ Mockito-Examples —
[WARNING] Used undeclared dependencies found:
[WARNING] org.junit.jupiter:junit-jupiter-api:jar:5.2.0:test
[WARNING] org.mockito:mockito-core:jar:2.19.0:test
[WARNING] Unused declared dependencies found:
[WARNING] org.junit.platform:junit-platform-runner:jar:1.2.0:test
[WARNING] org.junit.jupiter:junit-jupiter-engine:jar:5.2.0:test
[WARNING] org.mockito:mockito-junit-jupiter:jar:2.19.0:test
通过识别未使用的依赖并将其从 `pom.xml` 文件中移除,这有助于减小构建大小。
mvn archetype:generate
此命令用于生成不同类型的骨架Maven项目,例如JAR、Web应用程序、Maven站点等:
- mvn archetype:generate
输出示例:
[INFO] —————————————————————————-
[INFO] Using following parameters for creating project from Archetype: maven-archetype-quickstart:1.4
[INFO] —————————————————————————-
…
[INFO] Project created from Archetype in dir: /Users/sammy/Desktop/maven-examples/maven-example-jar
[INFO] ————————————————————————
[INFO] BUILD SUCCESS
推荐阅读:使用Maven Archetypes创建Java项目
mvn site:site
此命令为项目生成一个站点:
- mvn site:site
执行此命令后,您会注意到 `target` 目录下会有一个 `site` 目录。
/Users/sammy/Desktop/maven-examples/maven-example-jar/target/site/index.html
`site` 目录中会有多个HTML文件,提供与项目相关的信息。
mvn test
此命令运行项目的测试用例:
- mvn test
输出示例:
[INFO] ——————————————————-
[INFO] T E S T S
[INFO] ——————————————————-
[INFO] Running TestSuite first-element second-element Employee setName Argument = Sammy
…
[INFO] Results:
[INFO]
[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ————————————————————————
[INFO] BUILD SUCCESS
mvn compile
此命令编译项目的Java源代码:
- mvn compile
输出示例:
[INFO] — maven-compiler-plugin:3.7.0:compile (default-compile) @ Mockito-Examples —
[INFO] Changes detected – recompiling the module!
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 10 source files to /Users/sammy/Desktop/maven-examples/Mockito-Examples/target/classes
它类似于之前的 `mvn compiler:compile` 命令,但会运行整个Maven生命周期直到编译阶段。
mvn verify
此命令构建项目,运行所有测试用例,并对集成测试结果进行任何检查,以确保满足质量标准:
- mvn verify
Maven选项
Maven提供了许多命令行选项来改变Maven构建过程:
mvn -help
Maven命令大全:20个必备操作指南 [API调用失败]
这是文章《Maven命令大全:20个必备操作指南 [API调用失败]》的第4部分(共5部分)。
mvn -help
:显示Maven使用帮助和所有可用选项
$ mvn -help
此命令行选项将打印Maven的使用说明和所有可用选项。
输出示例:
usage: mvn [options] [<goal(s)>] [<phase(s)>]
Options:
-am,--also-make 如果指定了项目列表,同时构建列表所需的项目
-amd,--also-make-dependents 如果指定了项目列表,同时构建依赖于列表中的项目的项目
-B,--batch-mode 以非交互(批处理)模式运行(禁用输出颜色)
-b,--builder <arg> 要使用的构建策略ID
-C,--strict-checksums 如果校验和不匹配,则构建失败
-c,--lax-checksums 如果校验和不匹配,则发出警告
-cpu,--check-plugin-updates 无效,仅为向后兼容保留
mvn -f dir/pom.xml package
:从不同位置构建项目
$ mvn -f dir/pom.xml package
此命令行选项允许您从指定位置的pom.xml
文件构建项目。当您需要从脚本运行Maven构建时,此功能非常有用。
mvn -o package
:以离线模式运行Maven构建
$ mvn -o package
此命令行选项以离线模式运行Maven构建。当您本地仓库中已下载所有必需的JAR包,并且不希望Maven从远程仓库查找任何JAR包时,此功能非常有用。
mvn -q package
:以安静模式运行Maven构建
$ mvn -q package
此命令行选项以安静模式运行Maven构建,因此只显示测试用例结果和错误信息。
mvn -X package
:打印Maven版本并以调试模式运行构建
$ mvn -X package
此命令行选项将打印Maven版本信息,并以调试模式运行构建,从而显示所有详细消息。
输出示例:
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Mvn home: /Users/sammy/Downloads/apache-maven-3.6.3
Java version: 13.0.1, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home
Default locale: en_IN, platform encoding: UTF-8
OS name: "mac os x", version: "10.15.1", arch: "x86_64", family: "mac"
[DEBUG] Created new class realm maven.api
[DEBUG] Importing foreign packages into class realm maven.api
[DEBUG] Imported: javax.annotation.* < plexus.core
[DEBUG] Imported: javax.annotation.security.* < plexus.core
[DEBUG] Imported: javax.enterprise.inject.* < plexus.core
[DEBUG] Imported: javax.enterprise.util.* < plexus.core
[DEBUG] Imported: javax.inject.* < plexus.core
mvn -v
:显示Maven版本信息
$ mvn -v
此命令行选项显示Maven的版本信息。
输出示例:
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Mvn home: /Users/sammy/Downloads/apache-maven-3.6.3
Java version: 13.0.1, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home
Default locale: en_IN, platform encoding: UTF-8
OS name: "mac os x", version: "10.15.1", arch: "x86_64", family: "mac"
mvn -V package
:显示Maven版本并运行构建
(此部分原文内容缺失,根据标题推测其功能与mvn -v
和mvn package
的组合类似,但通常-V
参数在Maven中并不单独用于运行构建,更常见的是-v
或--version
。若需补充,请提供具体原文内容。)
此命令行选项会打印Maven版本,然后继续构建:
- mvn -V package
这等同于以下命令:
- mvn -v;mvn package
mvn -DskipTests package
此命令行选项通过应用skipTests
系统属性来跳过构建周期中的单元测试用例:
- mvn -DskipTests package
您也可以通过以下方式跳过测试用例的执行:
- mvn -Dmaven.test.skip=true package
mvn -T 4 clean install
此命令行选项告诉Maven使用指定的线程数进行并行构建:
- mvn -T 4 clean install
这在多模块项目中非常有用,模块可以并行构建,从而缩短项目的构建时间。
参考资料
- Maven 插件
- Maven 命令行选项参考