maven的核心就是pom.xml,使用maven是为了更好的帮项目管理包依赖。如果要引入一个jar包,需要在pom文件中加上<dependency></dependency>就可以依赖相应的jar包。
场景一,有两个web项目W1、W2,一个java项目J1,依赖同一个jar包:domain.jar。如果分别在各自pom文件中引入common.jar的依赖,那么当common.jar的版本发生变化时,三个项目的pom文件都要改,项目中依赖越多修改越多。此时就可以使用parent标签, 可以创建一个parent项目,打包类型为pom,parent项目中没有任何代码,只是管理多个项目之间公共的依赖。在parent项目的pom文件中定义对domain.jar的依赖,W1W2J1三个子项目中只需要定义<parent></parent>,parent标签中写上parent项目的pom坐标就可以引用到domain.jar了。
场景二,有一个springweb.jar,只有W1W2两个web项目需要,J1项目是java项目不需要,那么又要怎么去依赖。如果W1W2中分别定义对springweb.jar的依赖,当springweb.jar版本变化时修改起来不方便。解决办法是在parent项目的pom文件中使用<dependencyManagement></dependencyManagement>将springweb.jar管理起来,如果有哪个子项目要用,那么子项目在自己的pom文件中使用
<dependency>
<groupId></groupId>
<artifactId></artifactId>
</dependency>
标签中写上springweb.jar的坐标,不需要写版本号,可以依赖到这个jar包了。这样springweb.jar的版本发生变化时只需要修改parent中的版本就可以了。
父pom文件:
<?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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.demo</groupId>
<artifactId>demo-platform-parent</artifactId>
<packaging>pom</packaging>
<version>1.0.0-SNAPSHOT</version>
<name>demo-platform-parent</name>
<url>http://demo.com</url>
<properties>
<junit.version>4.12</junit.version>
<spring.version>4.3.8.RELEASE</spring.version>
</properties>
<dependencyManagement>
<!-- TEST begin -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
子pom:
<dependencies><dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency></dependencies>