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

Maven 构建生命周期:

Maven命令_desktop

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

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

~/Desktop/MyMavenProj$ mvn pre-clean

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

~/Desktop/MyMavenProj$ mvn clean

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

~/Desktop/MyMavenProj$ mvn post-clean

4.编译

~/Desktop/MyMavenProj$ mvn compile

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

~/Desktop/MyMavenProj$ mvn install

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

~/Desktop/MyMavenProj$ mvn clean deploy

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

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

7.mvn archetype:generate 创建Maven项目

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

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

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

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

9.mvn deploy 发布项目

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

/Desktop/MyProject/springboot$ mvn test-compile

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

~/Desktop/MyProject/springboot$ mvn test

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

~/Desktop/MyProject/springboot$ mvn site

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

~/Desktop/MyProject/springboot$ mvn clean

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

~/Desktop/MyProject/springboot$ mvn package

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

~/Desktop/MyProject/springboot$ mvn install

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

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

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

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

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

亦可以不在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>

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

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

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

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

/Desktop/MyProject/springboot$ mvn tomcat:run