Maven总结之命令(七)

阿凡达2018-06-28 17:39

7. Maven命令

7.1 Mave 常用命令

Maven命令列表 目标
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 tomcat:run 在tomcat容器中运行web应用
mvn jetty:run 调用 Jetty 插件的 Run 目标在 Jetty Servlet 容器中启动 web 应用

注:运行maven命令的时候,首先需要定位到maven项目的目录,也就是项目的pom.xml文件所在的目录。否则,必以通过参数来指定项目的目录。

7.2 Mave 命令参数

  1. -D 传入属性参数

比如命令:

mvn package -Dmaven.test.skip=true

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

  1. -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 -P dev

其中“dev“为环境的变量id,代表使用Id为“dev”的profile。

  1. -e 显示maven运行出错的信息

  2. -o 离线执行命令,即不去远程仓库更新包

  3. -X 显示maven允许的debug信息

  4. -U 强制去远程更新snapshot的插件或依赖,默认每天只更新一次

创建一个普通的Java项目:

mvn archetype:generate -DgroupId=packageName -DartifactId=projectName -Dversion=1.0.0-SNAPSHOT

后面的三个参数用于指定项目的groupId、artifactId以及version。

创建Maven的Web项目:

mvn archetype:generate -DgroupId=packageName -DartifactId=projectName -DarchetypeArtifactId=maven-archetype-webapp

archetypeArtifactId参数用于指定使用哪个maven原型,这里使用的是maven-archetype-webapp,maven会按照web应用的目录结构生成项目。

Maven总结之入门指南(一)

Maven总结之生命周期(二)

Maven总结之插件管理(三)

Maven总结之Setting.xml配置文件解析(四)

Maven总结之Pom.xml解析(五)

Maven总结之约定大于配置(六)

Maven总结之仓库(八)

Maven总结之依赖管理(九)

本文来自网易实践者社区,经作者王志泳授权发布。