3 Maven命令

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的测试用例
mvn install 将打包的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>
......
<build>
<filters>
<filter>config/${env}.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
......
</build>

profiles 定义了各个环境的变量idfilters 中定义了变量配置文件的地址,其中地址中的环境变量就是上面profile 中定义的值,resources 中是定义哪些目录下的文件会被配置文件中定义的变量替换。\

通过maven可以实现按不同环境进行打包部署,例如:

mvn package -Pdev -Dmaven.test.skip=true

表示打包本地环境,并跳过单元测试

posted @ 2021-05-08 11:49  孤独的小人物  阅读(317)  评论(0)    收藏  举报