Maven使用笔记

  1. 云栖社区>
  2. 博客>
  3. 正文

Maven使用笔记

技术小哥哥 2017-11-21 21:15:00 浏览592
展开阅读全文

Maven
一.Maven是什么
Maven是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。
二.Maven工程的架构
src
main
java 放置你的源码
resources 放置你的配置文件
test
java 放置你的测试代码
resources 放置你的测试配置文件
target 构建完毕后所有的东西都出现在这个目录里
pom.xml Maven工程核心配置文件
三.第一个项目
四.Eclipse配置Maven环境
设置环境中的下列两个值
设置installations中,add你的maven环境
设置User setting中,设置你的本地仓库配置文件settings.xml,更新
五.创建Maven项目基于MyEclipse
创建新的Maven工程,选择quick-start,输入GAV,完成Maven工程的创建
六.依赖
Maven工程运行所需要使用的jar包(资源)通过本地仓库获取,本地仓库信息通过中央仓库获取,工程依赖对应的jar包运行
七.依赖范围

不同的依赖范围Scope对应不同的作用范围,例如test只能服务于测试阶段,其他阶段无效
八.依赖传递
Three依赖Two
Two依赖One
Three间接依赖One

九.可选依赖(修饰被依赖方是否向依赖放提供jar包)
<optional>true</optional>
在一个项目中使用可选依赖对多个配置进行开关设置,筛选依赖包
十.排除依赖(修饰依赖方是否使用被依赖放提供jar包)

复制代码
  <exclusions>
    <exclusion>
      所包含坐标1
    </exclusion>
     <exclusion>
      所包含坐标2
    </exclusion>
  </exclusions>
复制代码

将从依赖包中传递过来的依赖关系排除掉

十一.依赖冲突
不同项目传递依赖,以离依赖关系最近的为准
相同项目中配置多个依赖版本,以最后配置的为准
十二.仓库种类
本地仓库
D盘:本地仓库
远程仓库
互联网上
中央仓库:
私服:介于本地仓库与中央仓库之间的一个存放在局域网中的仓库
十三.生命周期
三大生命周期,每个生命周期中又包含有若干个细小的生命周期
clean
default
site
十四.插件使用

复制代码
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-source-plugin</artifactId>
      <version>2.2.1</version>
      <executions>
        <execution>
          <goals>
            <goal>jar-no-fork</goal>
          </goals>
          <phase>verify</phase>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>
复制代码

 

十五.继承
继承为了消除重复,我们把很多相同的配置提取出来
父工程设置为被继承

复制代码
 <packaging>pom</packaging>
   子工程中添加继承父工程
   <!-- 描述继承 声明所继承的父工程的坐标,和对应的指定位置-->
   <parent>
     <groupId></groupId>
     <artifactId></artifactId>
     <version></version>
     <relativePath>../父工程项目名</relativePath>
   </parent>
复制代码

父工程统一管理子工程依赖版本

父工程声明依赖管理的版本,子工程中只需要声明所使用的坐标GA,无需设定版本,版本有父工程提供
统一管理版本

<properties>
  <junit.version>4.9</junit.version>
  ……
</properties>

引用使用${junit.version}

十六.聚合

<modules>
  <module>../子项目名称1</module>
  <module>../子项目名称2</module>
  <module>../子项目名称3</module>
</modules>

聚合与继承的关系

聚合主要为了快速构建项目
继承主要为了消除重复

//===========================================================

pom.xml简单的模板文件:

复制代码
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <!-- 版本:4.0.0 -->
  <modelVersion>4.0.0</modelVersion>
  <!-- 组织名称:暂时使用 组织名称+项目名称 作为组织名称 -->
  <!-- 组织名称:实际名称 按照访问路径规范设置,通常以功能作为名称:eg: junit spring -->
  <groupId>cn.itcast.maven</groupId>
  <!-- 项目名称 -->
  <artifactId>HelloWorld</artifactId>
  <!-- 当前项目版本号:同一个项目开发过程中可以发布多个版本,此处标示0.0.1版 -->
  <!-- 当前项目版本号:每个工程发布后可以发布多个版本,依赖时调取不同的版本,使用不同的版本号 -->
  <version>0.0.1</version>
  <!-- 名称:可省略 -->
  <name>Hello</name>
  
  <!-- 依赖关系 -->
    <dependencies>
        <!-- 依赖设置 -->
        <dependency>
            <!-- 依赖组织名称 -->
            <groupId>junit</groupId>
            <!-- 依赖项目名称 -->
            <artifactId>junit</artifactId>
            <!-- 依赖版本名称 -->
            <version>4.9</version>
            <!-- 依赖范围:test包下依赖该设置 -->
            <scope>test</scope>
        </dependency>        
    </dependencies>
</project>
复制代码

执行maven命令打jar包...

a)打开cmd命令行,进入Hello项目根目录(包含有pom.xml文件的目录)
b)执行 mvn compile命令
执行完毕后,生成了maven工程编译完成后字节码文件的生成目录target
c)cmd 中继续录入mvn clean命令
执行完毕后,字节码生成目录被删除
d)cmd 中录入 mvn test命令
执行完毕后,字节码生成目录中生成了被测试类与测试类的编译字节码和测试执行过程日志与详细报告
e)cmd 中录入 mvn clean compile命令
组合指令,先执行clean,再执行compile,通常应用于上线前执行,清除测试类
f)cmd 中录入 mvn clean test命令
组合指令,先执行clean,再执行test,通常应用于测试环节
g)cmd 中录入 mvn clean package命令
组合指令,先执行clean,再执行package,将项目打包,通常应用于发布前
执行过程:
清理————清空环境
编译————编译源码
测试————测试源码
打包————将编译的非测试类打包
h)cmd 中录入 mvn clean install 查看仓库,当前项目被发布到仓库中
组合指令,先执行clean,再执行install,将项目打包,通常应用于发布前
执行过程:
清理————清空环境
编译————编译源码
测试————测试源码
打包————将编译的非测试类打包
部署————将打好的包发布到资源仓库中
-----------------------------------------------------------------

 


本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/6913795.html,如需转载请自行联系原作者

网友评论

登录后评论
0/500
评论
技术小哥哥
+ 关注