maven常用命令

Maven库:

http://repo2.maven.org/maven2/

Maven依赖查询:

http://mvnrepository.com/

格式

mvn [options] [<goal(s)>] [<phase(s)>]
帮助命令:
mvn -version/-v:显示版本信息
mvn --help/-h:帮助命令
命令参数

  • -D 指定参数,如 -Dmaven.test.skip=true 跳过单元测试;
  • -P 指定 Profile 配置,可以用于区分环境;
  • -e 显示maven运行出错的信息;
  • -o 离线执行命令,即不去远程仓库更新包;
  • -X 显示maven允许的debug信息;
  • -U 强制去远程更新snapshot的插件或依赖,默认每天只更新一次。

常用命令

1、使用命令创建maven工程

mvn archetype:generate -DgroupId=com.cavan -DartifactId=hello-world:创建普通maven项目
mvn archetype:generate -DgroupId=com.cavan -DartifactId=hello-world -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false:创建web项目

执行普通创建时,会遇到以下停顿:

[root@cavan spring-boot]# mvn archetype:generate -DgroupId=com.cavan -DartifactId=hello
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< org.apache.maven:standalone-pom >-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:3.2.1:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO]
[INFO] <<< maven-archetype-plugin:3.2.1:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO]
[INFO]
[INFO] --- maven-archetype-plugin:3.2.1:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Interactive mode
[WARNING] No archetype found in remote catalog. Defaulting to internal catalog
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: internal -> org.apache.maven.archetypes:maven-archetype-archetype (An archetype which contains a sample archetype.)
2: internal -> org.apache.maven.archetypes:maven-archetype-j2ee-simple (An archetype which contains a simplifed sample J2EE application.)
3: internal -> org.apache.maven.archetypes:maven-archetype-plugin (An archetype which contains a sample Maven plugin.)
4: internal -> org.apache.maven.archetypes:maven-archetype-plugin-site (An archetype which contains a sample Maven plugin site.
      This archetype can be layered upon an existing Maven plugin project.)
5: internal -> org.apache.maven.archetypes:maven-archetype-portlet (An archetype which contains a sample JSR-268 Portlet.)
6: internal -> org.apache.maven.archetypes:maven-archetype-profiles ()
7: internal -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.)
8: internal -> org.apache.maven.archetypes:maven-archetype-site (An archetype which contains a sample Maven site which demonstrates
      some of the supported document types like APT, XDoc, and FML and demonstrates how
      to i18n your site. This archetype can be layered upon an existing Maven project.)
9: internal -> org.apache.maven.archetypes:maven-archetype-site-simple (An archetype which contains a sample Maven site.)
10: internal -> org.apache.maven.archetypes:maven-archetype-webapp (An archetype which contains a sample Maven Webapp project.)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 7: maven-archetype-quickstart #第一处:输入骨架名称,可以自动筛选如骨架编号 
Choose archetype:
1: internal -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 1: 1 #第二处:输入骨架对应的编号
[INFO] Using property: groupId = com.cavan                  #为公司名称  
[INFO] Using property: artifactId = hello                   #项目名称
Define value for property 'version' 1.0-SNAPSHOT: : 0.1.0   #项目版本,直接回车为默认1.0-SNAPSHOT
[INFO] Using property: package = com.cavan                  #包名
Confirm properties configuration:
groupId: com.cavan
artifactId: hello
version: 0.1.0
package: com.cavan
 Y: : y #第三处:确认是否为以上参数
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.1
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: basedir, Value: /opt/spring-boot
[INFO] Parameter: package, Value: com.cavan
[INFO] Parameter: groupId, Value: com.cavan
[INFO] Parameter: artifactId, Value: hello
[INFO] Parameter: packageName, Value: com.cavan
[INFO] Parameter: version, Value: 0.1.0
[INFO] project created from Old (1.x) Archetype in dir: /opt/spring-boot/hello
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:46 min
[INFO] Finished at: 2022-07-24T22:56:24+08:00
[INFO] ------------------------------------------------------------------------

  • -DarchetypeArtifactId:项目骨架
  • -DgroupId:组织id(必填)
  • -DartifactId:项目名称/模板名称(必填)
  • -DinteractiveMode=false:是否以交互式命令行的形式构建项目

目前可以使用的骨架有:

  • maven-archetype-archetype
  • maven-archetype-j2ee-simple
  • maven-archetype-mojo
  • maven-archetype-portlet
  • maven-archetype-profiles (currently under development)
  • maven-archetype-quickstart
  • maven-archetype-simple (currently under development)
  • maven-archetype-site
  • maven-archetype-site-simple
  • maven-archetype-webapp:Web项目

2、项目启动

mvn spring-boot:run

3、项目清理

mvn clean

4、编译项目

mvn compile

5、打包项目代码(常用)

mvn package:打包
mvn clean package -DskipTests:跳过测试代码运行,但是会编译
mvn clean package -Dmaven.test.skip=true:跳过测试代码编译和运行(如果没时间改单元测试BUG,使用这种)

6、运行测试

mvn test:编译并测试
测试命令或执行src/test/java下junit的测试用例

7、编译测试的内容

mvn test-compile

8、部署到远程

mvn deploy

9、生成站点

mvn site

10、查看项目依赖树

mvn dependency:tree

11、安装本地jar包到仓库(常用)

mvn install -DskipTests:本地安装jar
mvn install:install-file -Dfile=E:\softwares\zookeeper-3.4.10\zookeeper-3.4.10.jar -DgroupId=org.apache.zookeeper -DartifactId=zookeeper -Dversion=3.4.10 -Dpackaging=jar:本地仓库安装已存在jar

问题分析

1)mvn clean package
依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段
package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
2) mvn clean install
依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段
install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库
3) mvn clean deploy
依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段
deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库

参考链接:

博客:
https://blog.csdn.net/zhujq_icode/article/details/80743394
https://blog.csdn.net/silencez_w/article/details/121775911
http://t.zoukankan.com/javahr-p-9329560.html

posted @ 2022-07-24 23:15  cavan丶keke  阅读(185)  评论(0编辑  收藏  举报