Maven第三篇【Maven术语、pom.xml介绍】

maven术语

在咱们上一篇中已经知道了在Intellij idea下是如何使用Maven的了,建立出来的目录结构是这样子的:apache

这里写图片描述

上面的目录结构就是Maven所谓的”约定“,咱们使用Maven来构建Java项目,都是这种目录结构的…服务器

接下来咱们来了解一下Mavaen一些经常使用的术语markdown

仓库

本地仓库maven

  • Maven会把咱们项目所构建出来的jar包等等资源存放在本地仓库中。当咱们须要jar包的时候,Maven第一时间也是去本地仓库中寻找jar包

中心仓库:ide

-* 当Maven在本地仓库和私服找不到咱们须要的jar包的时候,就去中心仓库中帮咱们下载对应的jar包*。那Maven怎么知道去哪里下载呢??其实Maven已经配置好的了测试

apache-maven-3.2.1\lib\maven-model-builder-3.2.1\org\apache\maven\model下的POM.xml文件中已经配置好了ui

<repositories>
    <repository>
      <id>central</id>
      <name>Central Repository</name>
      <url>http://repo.maven.apache.org/maven2</url>
      <layout>default</layout>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <id>central</id>
      <name>Central Repository</name>
      <url>http://repo.maven.apache.org/maven2</url>
      <layout>default</layout>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <releases>
        <updatePolicy>never</updatePolicy>
      </releases>
    </pluginRepository>
  </pluginRepositories>

私有服务器url

  • 存储一些jar包的服务器,因为本地仓库不可能拥有大部分的jar包,一个团队要去开发,免不了老是去中心仓库下载,这就很是耗费时间了。若是私有服务器拥有这些jar包,那么每台电脑就不用去中心仓库中下载了…

maven软件构建的生命周期

软件的生命周期就是如下idea

-* 清除–> 编译–>测试–>报告–>打包(jar\war)–>安装–>部署*spa

maven生命周期命令插件

当咱们使用idea环境下开发,maven生命周期的插件就很是清晰了…

这里写图片描述

maven坐标

  1. 坐标的组成: groupId + artifactId+ version

    • groupId:组id ,机构名,公司名:比如公司的id,或者是公司包名
      alibaba ——-》高德–》5.01版本
    • artifactId:构建物id ,产品名或者产品的id
    • version :版本号
  2. jar包组成:
    artifactId-version.jar

pom.xml介绍

pom.xml介绍 :project object model 项目对象模型 ,它是maven核心配置文件

当咱们把上面的术语了解完之后,对下面pom.xml配置文件就不会感到陌生了。

<?xml version="1.0" encoding="UTF-8"?>
<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>

    <groupId>zhongfucheng3</groupId>
    <artifactId>zhongfucheng3</artifactId>
    <version>1.0-SNAPSHOT</version>


</project>

若是咱们想要咱们的项目可以有Junit测试的开发包,咱们只要指定对应的jar包依赖就好了..

这里写图片描述

scope应用范围有test、compile等等,默认是compile,那么test和compile有什么区别呢?

  • 间接依赖问题 :依赖的jar包必须是 compile 范围,假如是test范围,则发布的jar包不会包含test范围依赖的jar包,和依赖关系
<scope>test</scope>
相关文章
相关标签/搜索