3 Maven命令
作为开发利器的maven,为我们提供了十分丰富的命令,了解maven的命令行操作并熟练运用常见的maven命令还是十分必要的,即使譬如IDEA等工具给我提供了图形界面化工具,但其底层还是依靠maven命令来驱动的。 Maven的命令格式如下:
mvn [plugin-name]:[goal-name]
命令代表的含义:执行plugin-name 插件的goal-name 目标
3.1 常用命令
| 命令 | 描述 |
|---|---|
| mvn –version | 显示版本信息 |
| mvn clean | 清理项目生产的临时文件,一般是模块下的target目录 |
| mvn compile | 编译源代码,一般编译模块下的src/main/java目录 |
| mvn package | 项目打包工具,会在模块下的target目录生成jar或war等文件 |
| mvn test | 测试命令,或执行src/test/java/下junit的测试用例 |
| 将打包的jar/war文件复制到你的本地仓库中,供其他模块使用 | |
| mvn deploy | 将打包的文件发布到远程参考,提供其他人员进行下载依赖 |
| mvn site | 生成项目相关信息的网站 |
| mvn eclipse:eclipse | 将项目转化为Eclipse项目 |
| mvn dependency:tree | 打印出项目的整个依赖树 |
| mvn archetype:generate | 创建Maven的普通java项目 |
| mvn tomcat7:run | 在tomcat容器中运行web应用 |
| mvn jetty:run | 调用 Jetty 插件的 Run 目标在 Jetty Servlet 容器中启动 web 应用 |
注意:运行maven命令的时候,首先需要定位到maven项目的目录,也就是项目的pom.xml文件所在的目录。否则,必以通
过参数来指定项目的目录。
3.2 命令参数
上面列举的只是比较通用的命令,其实很多命令都可以携带参数以执行更精准的任务。
3.2.1 -D 传入属性参数
例如:
mvn package -Dmaven.test.skip=true 以-D 开头,将maven.test.skip 的值设为true ,就是告诉maven打包的时候跳过单元测试。同理,mvn deploy-Dmaven.test.skip=true 代表部署项目并跳过单元测试。
3.2.2 -P 使用指定的Profile配置
比如项目开发需要有多个环境,一般为开发,测试,预发,正式4个环境,在pom.xml中的配置如下:
<profiles>
<profile>
<id>dev</id>
<properties>
<env>dev</env>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>qa</id>
<properties>
<env>qa</env>
</properties>
</profile>
<profile>
<id>pre</id>
<properties>
<env>pre</env>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<env>prod</env>
</properties>
</profile>
</profiles>