开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 26 天,点击查看活动详情
作为开发利器的maven,为我们提供了⼗分丰富的命令,了解maven的命令⾏操作并熟练运⽤常⻅的maven命令还是⼗分必要的,即使譬如IDEA等⼯具给我提供了图形界⾯化⼯具,但其底层还是依靠maven命令来驱动的。
Maven的命令格式如下:
mvn [plugin-name]:[goal-name]
命令代表的含义:执⾏ plugin-name 插件的 goal-name ⽬标
4.1. 常⽤命令
==注意:运⾏maven命令的时候,⾸先需要定位到maven项⽬的⽬录,也就是项⽬的pom.xml⽂件所在的⽬录。否则,必以通过参数来指定项⽬的⽬录。==
4.2. 命令参数
上⾯列举的只是⽐较通⽤的命令,其实很多命令都可以携带参数以执⾏更精准的任务。
4.2.1. -D 传⼊属性参数
例如:mvn package -Dmaven.test.skip=true
以 -D 开头,将 maven.test.skip 的值设为 true ,就是告诉maven打包的时候跳过单元测试。同理, mvn deploy-Dmaven.test.skip=true 代表部署项⽬并跳过单元测试。
4.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 定义了各个环境的变量 id , filters 中定义了变量配置⽂件的地址,其中地址中的环境
变量就是上⾯ profile 中定义的值, resources 中是定义哪些⽬录下的⽂件会被配置⽂件中定义的变
量替换。
通过maven可以实现按不同环境进⾏打包部署,例如:mvn package -Pdev -Dmaven.test.skip=true
表示打包本地环境,并跳过单元测试