1·maven的作用

2使用maven的好处

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

(1)约定大于配置

  使用约定,约定java源代码代码必须放在哪个目录下,编译好的java代码又必须放到哪个目录下,这些目录都有明确的约定。

  (2) Mavend的每一个命令有一个生命周期,如install命令可从清理到部署

(3)处理jar包的依赖关系(pom.xml)

(4)输出我们需要的文件

 

3  maven项目的构建过程

  maven把项目分为【清理项目】→【编译项目】→【测试项目】→【生成测试报告】→【打包项目】→【部署项目】这几个步骤

 

4 maven的命令

  

vn validate

验证项目是否正确,以及所有为了完整构建必要的信息是否可用

mvn generate-sources

生成所有需要包含在编译过程中的源代码

mvn process-sources

处理源代码,比如过滤一些值

mvn generate-resources

生成所有需要包含在打包过程中的资源文件

mvn process-resources

复制并处理资源文件至目标目录,准备打包

mvn compile

编译项目的源代码

mvn process-classes

后处理编译生成的文件,例如对Java类进行字节码增强(bytecode enhancement)

mvn generate-test-sources

生成所有包含在测试编译过程中的测试源码

mvn process-test-sources

处理测试源码,比如过滤一些值

mvn generate-test-resources

生成测试需要的资源文件

mvn process-test-resources

复制并处理测试资源文件至测试目标目录

mvn test-compile

编译测试源码至测试目标目录

mvn test

使用合适的单元测试框架运行测试。这些测试应该不需要代码被打包或发布

mvn prepare-package

在真正的打包之前,执行一些准备打包必要的操作。这通常会产生一个包的展开的处理过的版本(将会在Maven 2.1+中实现)

mvn package

将编译好的代码打包成可分发的格式,如JAR,WAR,或者EAR

mvn pre-integration-test

执行一些在集成测试运行之前需要的动作。如建立集成测试需要的环境

mvn integration-test

如果有必要的话,处理包并发布至集成测试可以运行的环境

mvn post-integration-test

执行一些在集成测试运行之后需要的动作。如清理集成测试环境。

mvn verify

执行所有检查,验证包是有效的,符合质量规范

mvn install

安装包至本地仓库,以备本地的其它项目作为依赖使用

mvn deploy

复制最终的包至远程仓库,共享给其它开发人员和项目(通常和一次正式的发布相关)

 

5 pom.xml

(1)加入依赖包

  

<dependency>标签最常用的四个属性标签:

groupId:项目组织唯一的标识符,实际对应JAVA的包的结构。

artifactId:项目唯一的标识符,实际对应项目的名称,就是项目根目录的名称。

version:jar包的版本号。可以直接填版本数字,也可以在properties标签中设置属性值。

scope:jar包的作用范围。可以填写compile、runtime、test、system和provided。用来在编译、测试等场景下选择对应的classpath。

(2)插件的使用

    插件:命令依赖于插件

  添加Maven插件,可以在pom.xml文件中添加<plugin>标签。

  

 <plugins>

    <plugin>

      <groupId>org.apache.maven.plugins</groupId>

      <artifactId>maven-compiler-plugin</artifactId>

      <version>3.3</version>

      <configuration>

        <source>1.7</source>

        <target>1.7</target>

      </configuration>

    </plugin>

  </plugins>

    其中,<configuration>标签用来配置插件的一些使用参数。

 

 

pom.xml 标签详解

    <project>       pom文件的顶级节点
    <modelVersion>     object model版本,对Maven2和Maven3来说,只能是4.0.0 
    

maven项目

    <groupId>       项目创建组织的标识符,一般是域名的倒写
    <artifactId>      定义了项目在所属组织的标识符下的唯一标识,一个组织下可以有多个项目
    <version>        当前项目的版本,SNAPSHOT,表示是快照版本,在开发中

    <packaging>      打包的方式,有jar、war、ear等
    

    

项目

      <name>        项目的名称
    <url>          项目的地址

  

属性

    <properties>    属性配置,比如:<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  

依赖的jar包

   <dependencies>     构建项目依赖的jar

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄