Maven子项目可以通过对maven父项目的集成来实现对jar包的管理,由于多个maven子项目中可能存在相同的jar包,所以,为了方便整理,可以建一个父项目,打包方式为pom
,然后再父项目的pom.xml中声明需要的jar包,然后在子项目中集成即可
父项目xml
<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>cn</groupId>
<artifactId>maven-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
<spring.version>4.0.3.RELEASE</spring.version>
</properties>
<!-- 需要在声明哪个子项目使用该jar包 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<!-- 定义导入的jar包以及版本 -->
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
</dependencyManagement>
<!-- 在该标签下的jar包所有子项目都会集成 -->
<!-- 所有的依赖在dependencies范围内添加,包含诸多 dependency -->
<dependencies>
<dependency>
<!-- 定义导入的jar包以及版本 -->
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<!-- 表示jar包的使用策略
test:只有Test下可用,不参与打包;
provided:不参与打包,有服务器或web容器提供
runtime:参与打包,不编译,比如数据库驱动
system:类似于provided,但是是从本地仓库获取 -->
<scope>compile</scope>
</dependency>
</dependencies>
</project>
子项目xml
<!--通过该标签继承父项目中dependencies标签内的jar包-->
<parent>
<groupId>cn</groupId>
<artifactId>maven-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!--指定父项目的真实路径-->
<relativePath>../maven-parent</relativePath>
</parent>
<dependencies>
<dependency>
<!-- 定义导入父项目中dependencyManagement标签内的某个jar包,不需要写版本号,如果不写则不会引用dependencyManagement标签内的jar包 -->
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>