Maven命令

举报
yd_221104950 发表于 2020/12/02 23:38:06 2020/12/02
【摘要】 在项目根目录下,即pom.xml 所在目录,可以执行以下mvn 命令。我们用~/Desktop/MyProject/springboot这个项目来演示Maven 构建生命周期中用到的命令。 Maven 构建生命周期: validate(验证):验证项目是否正确且所有必须信息是否可用compile(编译):编译源代码Test(测试):使用适当的单元测试框架(例如JU...

在项目根目录下,即pom.xml 所在目录,可以执行以下mvn 命令。我们用~/Desktop/MyProject/springboot这个项目来演示Maven 构建生命周期中用到的命令。

Maven 构建生命周期:
在这里插入图片描述

  • validate(验证):验证项目是否正确且所有必须信息是否可用
  • compile(编译):编译源代码
  • Test(测试):使用适当的单元测试框架(例如JUnit)运行测试
  • package(打包):根据pom.xml定义的<packaging>jar</packaging>来打包,创建JAR或WAR包。
  • verify(检查):对集成测试的结果进行检查,以保证质量达标
  • install(安装):安装打包的项目到本地仓库,以供其他项目使用
  • deploy (部署):拷贝最终的工程包到远程仓库中,共享给其他开发人员和工程

1.执行一些需要在clean之前完成的工作

~/Desktop/MyMavenProj$ mvn pre-clean

  
 
  • 1

2.移除所有上一次构建生成的文件

~/Desktop/MyMavenProj$ mvn clean

  
 
  • 1

3.执行一些需要在clean之后立刻完成的工作

~/Desktop/MyMavenProj$ mvn post-clean

  
 
  • 1

4.编译

~/Desktop/MyMavenProj$ mvn compile

  
 
  • 1

5. 在开发环境中,使用下面的命令去构建、安装工程到本地仓库

~/Desktop/MyMavenProj$ mvn install

  
 
  • 1

6. 在构建环境中,使用下面的调用来纯净地构建和部署项目到共享仓库中

~/Desktop/MyMavenProj$ mvn clean deploy

  
 
  • 1

6.Maven Site 插件一般用来创建新的报告文档、部署站点等。

pre-site:执行一些需要在生成站点文档之前完成的工作
site:生成项目的站点文档
post-site: 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
site-deploy:将生成的站点文档部署到特定的服务器上

  
 
  • 1
  • 2
  • 3
  • 4

7.mvn archetype:generate 创建Maven项目

~/Desktop/MyProject$ mvn -B archetype:generate \
> -DarchetypeGroupId=org.apache.maven.archetypes \
> -DgroupId=com.mycompany.app \
> -DartifactId=my-app

  
 
  • 1
  • 2
  • 3
  • 4

8.mvn compile 编译源代码
切换到 pom.xml所在目录

~/Desktop/MyProject/springboot$ ls
pom.xml  springboot.iml  src
~/Desktop/MyProject/springboot$ mvn compile


  
 
  • 1
  • 2
  • 3
  • 4

编译好的类放在 ${basedir}/target/classes

9.mvn deploy 发布项目

10.mvn test-compile 编译测试源代码


~/Desktop/MyProject/springboot$ mvn test-compile

  
 
  • 1
  • 2

11.mvn test 运行应用程序中的单元测试

~/Desktop/MyProject/springboot$ mvn test

  
 
  • 1

12.mvn site 生成项目相关信息的网站

~/Desktop/MyProject/springboot$ mvn site

  
 
  • 1

13.mvn clean 清除项目目录中的生成结果

~/Desktop/MyProject/springboot$ mvn clean

  
 
  • 1

14.mvn package 根据项目生成的jar

~/Desktop/MyProject/springboot$ mvn package

  
 
  • 1

15.mvn install 在本地Repository中安装jar,包含mvn compile,mvn package,然后上传到本地仓库(${user.home}/.m2/repository)

~/Desktop/MyProject/springboot$ mvn install

  
 
  • 1

16.mvn jetty:run 在jetty容器中运行工程

/usr/share/maven/conf/settings.xml没有配置jetty插件,可以这样来运行:

~/Desktop/MyProject/springboot$ mvn org.mortbay.jetty:maven-jetty-plugin:run

  
 
  • 1

或在/usr/share/maven/conf/settings.xml上配置如下信息:

<pluginGroups> <pluginGroup>org.mortbay.jetty</pluginGroup>
</pluginGroups>

  
 
  • 1
  • 2
  • 3

亦可以不在settings.xml上配置,直接在pom.xml上配置jetty插件,如:

或者在对应项目的pom.xml中的节点下添加配置

<plugins>
	<plugin>
		<groupId>org.mortbay.jetty</groupId>
		<artifactId>jetty-maven-plugin</artifactId> <configuration> <webApp> <contextPath>/</contextPath> </webApp> <stopKey>webx</stopKey> <stopPort>9999</stopPort> <connectors> <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"> <port>8081</port> <maxIdleTime>60000</maxIdleTime> </connector> </connectors> <requestLog implementation="org.eclipse.jetty.server.NCSARequestLog"> <filename>target/access.log</filename> <retainDays>90</retainDays> <append>false</append> <extended>false</extended> <logTimeZone>GMT+8:00</logTimeZone> </requestLog> <systemProperties> <systemProperty> <name>productionMode</name> <value>${productionMode}</value> </systemProperty> </systemProperties> </configuration>
  </plugin>
</plugins>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

那么我们就可以用如下方式来执行。jetty:run直接使用源代码运行web程序,不将其打包成war文件。jetty插件会保证在运行前所有的类和资源都是最新的。如果你修改了代码,插件会自动重新部署。:

~/Desktop/MyProject/springboot$ mvn jetty:run

  
 
  • 1

jetty:run-war会先将程序打包成war文件然后再将其部署。如果有代码修改,会重新打包war文件并部署。

17.mvn tomcat:run 在tomcat容器中运行工程


~/Desktop/MyProject/springboot$ mvn tomcat:run

  
 
  • 1
  • 2

文章来源: blog.csdn.net,作者:WongKyunban,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_40763897/article/details/105002198

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。