maven基础概念及操作

  • 一:maven的作用
  • 二:maven仓库
  • 三:maven项目结构
  • 四:maven基础常用命令
  • 五:maven的生命周期与插件
  • 1.生命周期
  • 2.插件
  • 六:maven的坐标定义
  • 七:依赖管理


一:maven的作用

  • 构建项目:编译、测试、打包、部署
  • 依赖管理:对jar包进行管理

二:maven仓库

maven仓库清理bat maven删除远程仓库的包_maven

maven仓库清理bat maven删除远程仓库的包_jar包_02


本地仓库:存储从远程仓库或中央仓库下载下来的jar包,项目使用jar包时优先从本地仓库查找

maven仓库清理bat maven删除远程仓库的包_maven_03

远程仓库(私服):项目使用的jar包在本地没有时去远程仓库进行下载,远程仓库可在互联网也可在局域网(私服)

maven仓库清理bat maven删除远程仓库的包_maven_04

中央仓库:maven团队维护的jar包仓库,maven软件内置了中央仓库地址,我们一般替换成alyun仓库地址

maven仓库清理bat maven删除远程仓库的包_java_05

<url>http://maven.aliyun.com/nexus/content/groups/public</url>

三:maven项目结构

java项目

maven仓库清理bat maven删除远程仓库的包_junit_06


maven仓库清理bat maven删除远程仓库的包_maven_07


web项目

maven仓库清理bat maven删除远程仓库的包_java_08

四:maven基础常用命令

  1. mvn clean:清理
    将项目根目录下target目录清理掉。
  2. mvn compile:编译
    将项目中.java文件编译为.class文件
    3.mvn test:单元测试
    单元测试类名有要求:XxxxTest.java
    将项目根目录下src/test/java目录下的单元测试类都会执行
  3. mvn package:打包
    web project ---- war包
    java project -----jar包
    将项目打包,打包项目根目录下taget目录
  4. mvn install:安装
    打包到本地仓库,让其它项目依赖
  5. mvn deploy:部署
    将打好的包复制到远程仓库

五:maven的生命周期与插件

1.生命周期

在maven中存在“三套”生命周期,每一套生命周期相互独立,互不影响。在一套生命周期内,执行后面的命令前面操作会自动执行

CleanLifeCycle:清理生命周期

clean

defaultLifeCycle:默认生命周期

compile,test,package,install,deploy

siteLifeCycle:站点生命周期

site

maven仓库清理bat maven删除远程仓库的包_java_09


maven仓库清理bat maven删除远程仓库的包_junit_10


maven仓库清理bat maven删除远程仓库的包_maven仓库清理bat_11

2.插件

maven仓库清理bat maven删除远程仓库的包_maven仓库清理bat_12


例:将源代码打包

<build>
  <plugins>
    <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-source-plugin</artifactId>
       <version>2.2.1</version>
       <executions>
         <execution>
           <goals>
              <goal>jar</goal>
           </goals>
           <phase>generate-test-resources</phase>
         </execution>
       </executions>
    </plugin>
  </plugins>
</build>

六:maven的坐标定义

maven仓库清理bat maven删除远程仓库的包_jar包_13

七:依赖管理

  1. 依赖传递:依赖具有传递性
  • 直接依赖:在当前项目中配置的jar包称为直接依赖
  • 间接依赖:在当前项目配置的jar包中配置的其它jar包,被称为当前项目的间接依赖
  1. 可选依赖:当前jar包被配置在项目中时,可选择将当前jar包中某个jar包对项目不可见
    即对外隐藏:
  2. 排除依赖:排除配置在当前项目jar包中的某个jar包
  3. 依赖范围