pom.xml

一、什么是pom

pom作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。

主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其他所有的项目相关因素。

 groupId 和artifactId没,不一定一样,这两个结合起来,想一个坐标系一样,知道这两个就好像知道的了 坐标系中哪个点一样,就能知道你用的是哪个jar包了。 一般这两个都是 提供jar的网站提供的。或者是自己 引用的自己的项目的jar包的值。

二、代码体现

1.最开始

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">
    <groupId>com.binbinjiang</groupId>
    <artifactId>binbinjiang-jianshu</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>my-jianshu</name>
...
</project>
  • 第一行是 XML 头,指定了该 xml 文档的版本和编码方式;
  • 最重要的是 groupId、artifactId、version 这三行
    • groupId:定义当前 Maven 项目隶属的实际项目,一个实际项目下会有多个 Maven 项目。如一家公司开发的产品,groupId 就是公司/个人域名,但会包括众多的 Maven 项目;
    • artifactId: 定义实际项目中的一个 Maven 项目,一般用实际项目名称作为 artifactId 的前缀;
    • version:指定 binbinjiang-jianshu 工程的版本 - 1.0 SNAPSHOT,SNAPSHOT 意为快照,说明在该项目还处于开发中;

2.dependencies

 

这串代码就是 Maven 最核心的功能——依赖管理。本例调用了google guava 18.0 和 javax 6.0 的 jar 包

  • dependencies:所有的依赖在此范围内添加,包含诸多 dependency;
  • groupId,artifactId,version:定位到了需要调用 jar 包的坐标;
  • scope:定义依赖范围
    • *compile *:编译范围(默认),在所有的 classpath 中可用;
    • *provided *:已提供范围,provided 依赖只有在当JDK 或者一个容器已提供该依赖之后才使用
    • *test *:测试范围,在一般的编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用
    • *runtime *:运行时范围,在运行和测试系统的时候需要,但在编译的时候不需要。如在编译的时候只需要JDBC api jar,而只有在运行的时候才需要JDBC
    • *system *:系统范围,依赖与provided 类似,但是你必须显式的提供一个对于本地系统中JAR 文件的路径

三,运行项目时maven的生命周期

原文地址:https://www.cnblogs.com/huanlfu/p/11382003.html