maven的基本使用是怎样的

maven的基本使用是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

成都创新互联公司从2013年创立,先为集宁等服务建站,集宁等地企业,进行企业商务咨询服务。为集宁企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

什么是maven?

Apache Maven 是一套软件工程管理和整合工具。 它是基于工程对象模型( Project Object Model ,POM)的概念,通过一个中央信息管理模块,Maven 能够管理项目的构建、报告和文档。说白了maven项目就是通过一个pom.xml实现对工程的管理,项目的测试、打包、部署等一应俱全的功能,用好了maven插件,简直事半功倍!Maven 是基于 Java 的工具,所以要做的第一件事情就是安装 JDK。

maven 特点:

Maven 能够帮助开发者完成以下工作:

  • 构建

  • 文档生成

  • 报告

  • 依赖

  • SCMs

  • 发布

  • 分发

  • 邮件列表

总的来说,Maven 简化了工程的构建过程,并对其标准化。它无缝衔接了编译、发布、文档生成、团队合作和其他任务。Maven 提高了重用性,负责了大部分构建相关的任务。

开发者不需要再关心每一个配置细节。Maven 为工程提供了合理的默认行为。当创建 Maven 工程时,Maven 会创建默认的工程结构。开发者只需要合理的放置文件,而在 pom.xml 中不再需要定义任何配置。

Maven 使用约定而不是配置,意味着开发者不需要再自己创建构建过程。maven内置变量如下:

${basedir}表示项目根目录,即包含pom.xml文件的目录;

${version}表示项目版本;

${project.basedir}同${basedir};

${project.baseUri}表示项目文件地址;

${maven.build.timestamp}表示项目构件开始时间;

${maven.build.timestamp.format}表示属性${maven.build.timestamp}的展示格式,默认值为yyyyMMdd-HHmm,可自定义其格式,其类型可参考java.text.SimpleDateFormat。
 ${project.build.directory}表示主源码路径;

${project.build.sourceEncoding}表示主源码的编码格式;

${project.build.sourceDirectory}表示主源码路径;

${project.build.finalName}表示输出文件名称;

 ${project.version}表示项目版本,与${version}相同;
 ${project.xxx} 当前pom文件的任意节点的内容
 ${env.xxx} 获取系统环境变量。
 ${settings.xxx} 指代了settings.xml中对应元素的值。

一个工程仅有一个pom文件,那么如何唯一标记当前 工程呢?

  • 所有的 POM 文件需要 project 元素和三个必须的字段:groupId, artifactId,version

  • 在仓库中的工程标识为 groupId:artifactId:version

  • POM.xml 的根元素是 project,它有三个主要的子节点:

com.companyname.project-group
   project
   1.0
groupId:公司域名倒写

artifactId: 当前项目名称

version: 版本号

当执行一个任务或者目标时,Maven 会查找当前目录下的 POM,从其中读取所需要的配置信息,然后执行目标。能够在 POM 中设置的一些配置如下:

  • project dependencies

  • plugins

  • goals

  • build profiles

  • project version

  • developers

  • mailing list

更加详细的内容可以 到 pom.xml 所在的目录下执行以下 mvn 命令  mvn help:effective-pom ,查看完整的内容。

maven生命周期

maven的基本使用是怎样的

maven对构建(build)的过程进行了抽象和定义,这个过程被称为构建的生命周期(lifecycle)。生命周期(lifecycle)由多个阶段(phase)组成,每个阶段(phase)会挂接一到多个goal。goal是maven里定义任务的最小单元,goal分为两类,一类是绑定phase的,就是执行到某个phase,那么这个goal就会触发,另外一类不绑定,就是单独任务,这就相当于ant里的target。

以clean生命周期为例,当我们执行 mvn post-clean 命令时,Maven 调用 clean 生命周期,它包含以下阶段:

  • pre-clean:执行一些需要在clean之前完成的工作

  • clean:移除所有上一次构建生成的文件

  • post-clean:执行一些需要在clean之后立刻完成的工作

mvn clean 中的 clean 就是上面的 clean,在一个生命周期中,运行某个阶段的时候,它之前的所有阶段都会被运行,也就是说,如果执行 mvn clean 将运行以下两个生命周期阶段:

pre-clean, clean

如果我们运行 mvn post-clean ,则运行以下三个生命周期阶段:

pre-clean, clean, post-clean

Maven 构建配置文件

使用构建配置文件,你可以为不同的环境,比如说生产环境(Production)和开发(Development)环境,定制构建方式。

1. pom文件设置

配置文件在 pom.xml 文件中使用 activeProfiles 或者 profiles 元素指定,并且可以通过各种方式触发。配置文件在构建时修改 POM,并且用来给参数设定不同的目标环境(比如说,开发(Development)、测试(Testing)和生产环境(Production)中数据库服务器的地址)。

maven的基本使用是怎样的

场景:开发环境下和生产环境下的配置文件肯定不一样,如何通过profile来控制呢?

假设 在src/main/resources文件夹下有三个用于测试文件:

maven的基本使用是怎样的

那么在pom.xml文件下做如下配置:

   
          normal
          
              
                 
                    org.apache.maven.plugins
                    maven-antrun-plugin
                    1.8
                    
                       
                          test
                          
                             run
                          
                          
                          
                             Using env.properties
                             
                          
                          
                       
                    
                 
              
          
      
      
          prod
          
              
                 
                    org.apache.maven.plugins
                    maven-antrun-plugin
                    1.8
                    
                       
                          test
                          
                             run
                          
                          
                          
                             Using env.prod.properties
                             
                          
                          
                       
                    
                 
              
          
      
   

使用 pom.xml 来定义不同的 profile,并使用 maven 命令可以激活不同的 profile。

mvn test -Pnormal

将会激活id为normal的环境

2. 通过Maven设置激活配置文件

打开 %USER_HOME%/.m2 目录下的 settings.xml 文件,其中 %USER_HOME% 代表用户主目录。如果 setting.xml 文件不存在就直接拷贝 %M2_HOME%/conf/settings.xml 到 .m2 目录,其中 %M2_HOME% 代表 Maven 的安装目录。

配置 setting.xml 文件,增加 属性:


   ...
   
      test
   

执行命令:

mvn test

此时不需要使用 -Ptest 来输入参数了,上面的 setting.xml 文件的 已经指定了 test 参数代替了。

除此之外,还可以通过环境变量激活。

通常,可以在setting文件里设置如下的仓库源,可以快速下载相应的jar包

      alimaven      aliyun maven      http://maven.aliyun.com/nexus/content/groups/public/      central        

看完上述内容,你们掌握maven的基本使用是怎样的的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


本文题目:maven的基本使用是怎样的
文章位置:http://pwwzsj.com/article/pjipcc.html