Maven命令

  作为开发利器的Maven,为我们提供了十分丰富的命令,了解Maven的命令行操作并熟练运用常见的Maven命令还是十分必要的,及时譬如IDEA等工具提供了图形化工具,但其底层还是依靠Maven命令来驱动的。

Maven命令格式如下:

mvn [plugin-name]: [goal-name]

* 执行  plugin-name 插件的 goal-name 目标

常见命令

命令 描述
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文件所在的目录。否则,必须通过参数来指定项目的目录。

命令参数

-D 传入参数属性

例如:

  mvn package -Dmacen.test.skip = true

  以 -D 开头,将maven.test.skip的值设置为true,就是告诉maven打包的时候跳过单元测试。同理,mvn deploy -Dmaven.test.skip=true代表部署项目并跳过单元测试。

-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

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

原文地址:https://www.cnblogs.com/Gazikel/p/14383231.html