maven必知必会

了解maven

maven的作用

  1. maven采取约定大于配置的原则,规范了一套标准的javaweb项目结构
  2. maven提供了完备的包管理功能,不用到处找jar包了
  3. maven提供了一套完整的项目构建声明周期,让开发人员一键式一站式测试打包发布等.

maven仓库

maven仓库分为

  • 本地(local)

  • 中央(central)

  • 远程(remote) :定制的仓库,存放一些没在中央仓库中的包,比如公司自己的框架包

本地配置

本地maven的配置非常灵活,可以创建多个用于不同开发环境的配置文件.配置文件中指定不同的本地仓库地址和中央仓库地址 maven仓库配置

添加远程仓库

<project ...>
	<repositories>
		<repository>
			<id>java.net</id>
			<url>https://maven.java.net/content/repositories/public/</url>
		</repository>
	</repositories>
</project>

依赖搜索顺序

  1. 搜索本地仓库
  2. 搜索中央仓库
  3. 搜索远程仓库
  4. 三种仓库中都没有所需包,抛出错误

定制包到本地仓库

一些中央仓库和远程仓库没有的包,想使用的话要手动导入本地仓库,比如想使用kaptcha包(用于生成验证码图片的工具)

  1. 下载 “kaptcha-2.3”,得到jar包

  2. 执行maven命令,加入本地仓库

    mvn install:install-file -Dfile=/Users/hans/Downloads/kaptcha-2.3.jar -DgroupId=com.google.code -DartifactId=kaptcha -Dversion=2.3 
    -Dpackaging=jar
    
  3. 加入成功,声明坐标

<dependency>
      <groupId>com.google.code</groupId>
      <artifactId>kaptcha</artifactId>
      <version>2.3</version>
</dependency>

pom文件

<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">
 
    <!-- 模型版本 不重要 -->
    <modelVersion>4.0.0</modelVersion>
    <!-- 公司或者组织的唯一标志,并且配置时生成的路径也是由此生成, 如com.companyname.project-group,maven会将该项目打成的jar包放本地路径:/com/companyname/project-group -->
    <groupId>com.companyname.project-group</groupId>
    <!-- 项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的 -->
    <artifactId>project</artifactId>
    <!-- 版本号 -->
    <version>1.0</version>
  	<!-- 打包方式 jar/war/pom-->
  	<packaging>war</packaging>
</project>

POM标签大全

依赖管理原则

  1. 如果两个依赖版本在依赖树里的深度是一样的时候,第一个被声明的依赖将会被使用。
  2. 依赖具有传递性
  3. 子类声明的依赖版本覆盖父类声明的依赖版本

构建声明周期

插件

posted @ 2019-07-30 14:39  孔令翰  阅读(204)  评论(0编辑  收藏  举报