maven教程(1)

1·maven的作用

(1 )如果项目过于庞大,不适合用package划分模块,借助maven可将一个项目划分为多个工程。

(2)将jar包放到一个仓库里(本地仓库)。jar包可用引用获得,不用粘贴复制。避免版本不一致的风险

(3) 将jar包之间的依赖关系,交予maven处理。

2使用maven的好处

(1)约定大于配置

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

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

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

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

 

3  maven项目的构建过程

  (1)构建定义:把项目经过编译,并吧编译结果部署到服务器的整个过程。

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

  

  • 清理clean:将以前编译得到的旧文件class字节码文件删除
  • 编译compile:将java源程序编译成class字节码文件
  • 测试test:自动测试,自动调用junit程序
  • 报告report:测试程序执行的结果
  • 打包package:动态Web工程打War包,java工程打jar包
  • 安装install:Maven特定的概念-----将打包得到的文件复制到“仓库”中的指定位置
  • 部署deploy:将动态Web工程生成的war包复制到Servlet容器下,使其可以运行

 

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。

 

<scope>的属性及解释

1、compile,默认值,适用于所有阶段(开发、测试、部署、运行),本jar会一直存在所有阶段。

2、provided,只在开发、测试阶段使用,目的是不让Servlet容器和你本地仓库的jar包冲突 。如servlet.jar。

3、runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。

4、test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。

5、system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。

 

 

(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>标签用来配置插件的一些使用参数。)

 

 

6   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

 

转载于:https://www.cnblogs.com/jjjjjj/p/10860750.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值