pom(Project Object Model)指的是项目对象模型,用来描述当前的maven项目。使用pom.xml文件来实现。
<?xml version="1.0" encoding="UTF-8"?> <!--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"> <!--声明项目描述符遵循哪一个POM模型版本。模型本身的版本很少改变,虽然如此,但它仍然是必不可少的,目前POM模型版本是4.0.0--> <modelVersion>4.0.0</modelVersion> <!--Maven坐标 通过下面三个参数我们就能够确定一个唯一版本号的jar包--> <groupId>com.csn.maven</groupId> <!--定义当前项目(jar包)隶属的实际项目组--> <artifactId>maven-javaweb</artifactId> <!--定义当前项目(jar包)的名称--> <version>1.0-SNAPSHOT</version> <!--定义当前项目(jar包)的版本号--> <!--指定打包格式--> <packaging>war</packaging> <!--依赖导入 从本地仓库中导入(注意:只能搜索到已下载到本地的jar包 IDEA中给我们提供了一种搜索jar包的方式,帮助我们快速导入jar包。使用方法如下: 第一步:鼠标光标移入到在pom.xml文件中,按Alt+Insert键。会弹出一个选择框 第二步:选择Dependency后会弹出一个搜索框:输入要添加的jar包的名字 第二步:选择需要的jar包后按回车键即可自动添加此依赖 本地的jar包不存在maven会帮我们从私服或*仓库中下载该依赖 搜索依赖坐标的方法: *仓库中查找:http://mvnrepository.com/ 私服阿里云查找:<https://maven.aliyun.com/mvn/search 找到坐标复制到pom文件中即可 --> <!--*依赖版本维护*--> <!--如果pom文件中引入的依赖太多,各种依赖又有不同的版本,为了统一维护版本 我们可以将依赖的版本号抽取出来进行统一管理。抽取方法如下: 第一步 :在pom.xml中使用<propeties>属性定义jar包的版本 第二步 :在依赖的<version>中使用${}引入前面定义好的版本 好处:方便对项目中使用的jar包版本的统一管理。 --> <properties> <junit.version>4.12</junit.version> <mybatis.version>3.2.8</mybatis.version> </properties> <!--web项目所依赖的jar包坐标--> <dependencies> <!--junit4.12--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <!--mybatis3.2.8--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <!--servlet3.0--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> <scope>provided</scope> </dependency> <!--commons-beanutils--> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.8.3</version> </dependency> <!--commons-logging--> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.1</version> </dependency> <!--jstl--> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!--mysql驱动5.1.18--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.18</version> <scope>runtime</scope> </dependency> <!--slf4j1.6.4--> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.6.4</version> </dependency> </dependencies> <!-- 依赖范围设置 (<scope>标签说明) 依赖的jar默认情况可以在任何地方可用,可以通过<scope>标签设定其作用范围 这里的范围主要是指以下三种范围 (1)主程序范围有效(src/main目录范围内) (2)测试程序范围内有效(src/test目录范围内) (3)是否参与打包(package指令范围内) 标签的取值有四种:compile,test,provided,runtime compile(默认): 主程序范围有效,测试程序范围内有效,参与打包 eg(log4j) test: 测试程序范围内有效 eg(junit) provided: 主程序范围有效,测试程序范围内有效 eg(servlet-api) runtime: 仅参与打包 eg(jdbc) 指定依赖范围的方法 我们在导入依赖的时候,在<dependency>标签中使用<scope>设置即可 compile是默认的依赖范围,可以不用写出来 --> </project>
【补充】
pom.xml主要描述了项目的maven坐标,依赖关系,开发者需要遵循的规则,缺陷管理系统,组织和licenses,以及其他所有的项目相关因素,是项目级别的配置文件
setting.xml主要用于配置maven的运行环境等一系列通用的属性,是全局级别的配置文件