`
chenzhou123520
  • 浏览: 4260537 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Maven依赖管理

阅读更多

 

Maven提供dependencyManagement 元素既能让子模块继承到父模块的依赖配置,又能保证自模块依赖的使用灵活性。(有选择的继承)

可在accout-parent 中加入:

 

<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.juvenxu.mvnbook.account</groupId>
	<artifactId>account-parent</artifactId>
	<version>1.0.0-SNAPSHOT</version>
	<packaging>pom</packaging>
	<name>Account Parent</name>
	<properties>
		<springframework.version>2.5.6</springframework.version>
		<junit.version>4.7</junit.version>
	</properties>
	< dependencyManagement >
		<dependencies>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-core</artifactId>
				<version>${springframework.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-beans</artifactId>
				<version>${springframework.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-context</artifactId>
				<version>${springframework.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-context-support</artifactId>
				<version>${springframework.version}</version>
			</dependency>
			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>${junit.version}</version>
				<scope>test</scope>
			</dependency>
		</dependencies>
	</ dependencyManagement >
</project>

 子模块继承代码如下:

 

<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>
	
	< parent >
		<groupId>com.juvenxu.mvnbook.account</groupId>
		<artifactId> account-parent </artifactId>
		<version>1.0.0-SNAPSHOT</version>
	</ parent >
	
	<artifactId>account-email</artifactId>
	<name>Account Email</name>

	<properties>
		<javax.mail.version>1.4.1</javax.mail.version>
		<greenmail.version>1.3.1b</greenmail.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>                             
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>                                          
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>                                       
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context-support</artifactId>                                       
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
		</dependency>
		<dependency>
			<groupId>javax.mail</groupId>
			<artifactId>mail</artifactId>
			<version>${javax.mail.version}</version>
		</dependency>                   
		<dependency>
			<groupId>com.icegreen</groupId>
			<artifactId>greenmail</artifactId>
			<version>${greenmail.version}</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
	</build>

</project>
  使用继承管理依赖 (dependencyManagement)带来的好处

1、代码量减少,不用多次重复声明 version等元素。

2version受父管理,父变则子变,便于修改。

3dependencyManagement一旦定义,可以复用。

例如想要在另外一个模块中使用如父模块中一样的 dependencyManagement的设置。除了复制,还可以导入。如下:
<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>com.juvenxu.mvnbook.account</groupId>
			<artifactId> account-parent </artifactId>
			<version>1.0-SNAPSHOT</version>
			<type>pom</type>
			<scope>import</scope>
		</dependency>
	</dependencies>
</dependencyManagement>
 
1
3
分享到:
评论
1 楼 851228082 2015-06-04  
子模块集成父模块,具体来说都继承了哪些配置?

相关推荐

    Maven依赖管理项目构建工具.pdf

    五、基于IDEA 进行Maven依赖管理 1. 依赖管理概念 Maven通过pom.xml文件管理项目的依赖,每个依赖都有其GAV信息,Maven会自动解决依赖的版本和传递性依赖。 2. Maven工程核心信息配置和解读(GAVP) pom.xml文件中...

    maven依赖小例子

    Maven依赖管理是Maven的核心功能之一,它允许开发者声明项目所依赖的库,并自动下载这些库到本地仓库,以便于构建和运行项目。在Maven的项目对象模型(Project Object Model,POM)中,依赖被定义在`&lt;dependencies&gt;`...

    maven依赖管理 继承管理

    Maven就可以替我们自动的将当前jar包所依赖的其他所有jar包全部导入进来,无需人工参与,节约了我们大量的时间和精力。用实际例子来说明就是:通过Maven导入commons-fileupload-1.3.jar后,commons-io-2.0.1.jar会被...

    Maven的依赖验证项目

    【Maven的依赖验证项目】是一个关于Maven项目管理和依赖管理的实践案例,它与CSDN博主songdeitao的一篇文章《Maven依赖管理详解》相关联。在这个项目中,我们将深入理解Maven如何处理项目的依赖关系,以及如何有效地...

    Maven 依赖详细理解.pdf

    依赖范围(scope)是Maven依赖管理的一个重要概念。scope定义了依赖项的使用范围,主要有以下几个选项:compile、provided、runtime和test。compile表示依赖项在编译时需要,provided表示依赖项在编译和测试时需要,但...

    深入Maven依赖管理:精通依赖范围的艺术

    Maven的核心功能之一是依赖管理,它允许用户通过在`pom.xml`文件中声明依赖关系,自动处理项目所需的第三方库。 Maven工程的构建过程中,真正的jar包存放在仓库中,而项目中仅需放置jar包的坐标信息。这样,当需要...

    Maven依赖管理项目构建工具(保姆级教学)

    Maven的依赖管理遵循一些原则,如“最接近优先”规则,如果一个项目有两个或更多版本的相同依赖,Maven会优先选择离项目最近的依赖。此外,Maven还支持排除依赖,如果你不想引入某个特定的子依赖,可以通过...

    Java开发之Maven依赖管理入门带阿里云源

    适用人群:该教程适合软件开发人员、架构师以及对自动化构建和依赖管理感兴趣的IT专业人士。无论您是初学者还是有经验的Java开发者,都可以从中获益。 使用场景及目标:您可将此教程作为学习Maven的起点,理解其...

    ​实现maven项目中多版本依赖兼容使用解决方案

    Maven依赖管理遵循“传递性”原则,即项目可以直接依赖其他项目,间接依赖也会被自动引入。当出现相同类路径的冲突时,Maven会遵循“第一声明者优先”原则,即先声明的依赖版本优先。 2. **排除依赖(Exclusions)...

    maven依赖+继承+聚合

    在软件开发领域,Maven是一个广泛使用的项目管理和综合工具,主要负责构建、依赖管理和项目信息管理。本示例将深入探讨Maven中的“依赖”、“继承”和“聚合”这三个核心概念,帮助开发者更好地理解和应用Maven。 ...

    Maven依赖包(用于博客项目)

    Maven依赖管理的核心在于它的`pom.xml`文件,这是一个项目对象模型(Project Object Model)的配置文件,记录了项目的所有依赖。通过在`pom.xml`中声明依赖,Maven可以自动下载并管理这些依赖,避免了手动下载JAR...

    doris-1.1.3源码编译broker-maven依赖包repository

    这个过程涉及到的知识点主要包括 Maven 的使用、源码编译流程以及依赖管理。 首先,让我们深入了解 Maven。Maven 是一个项目管理和综合工具,用于自动化构建、依赖管理和项目信息管理。在Doris中,Maven 负责管理...

    maven依赖包(用于博客项目)

    在Java开发领域,Maven是广泛使用的...综上所述,这个“maven依赖包(用于博客项目)”包含了构建博客应用所需的全部或部分关键库,通过Maven的依赖管理和构建机制,能够有效地组织和管理项目的复杂性,加速开发进程。

    Geoserver maven 依赖

    在GIS(地理信息系统)领域,GeoServer是一款开源的、基于Java...这不仅简化了项目的构建过程,也使得依赖管理变得更加有序和高效。通过Maven,你可以轻松地集成和利用GeoServer的强大功能,构建出自己的地图服务应用。

    java-maven-ckfinder-2.3-jar包依赖

    总的来说,CKFinder 2.3 通过 Maven 依赖管理,简化了在 Java 项目中集成文件管理功能的过程。正确地添加和配置 CKFinder,可以让你的用户轻松地进行文件上传和管理,提高应用程序的用户体验。记得根据具体需求调整 ...

    maven 中引入依赖的包

    总的来说,Maven的依赖管理是其强大功能的一部分,它极大地简化了Java项目的构建流程,让开发者能够更专注于代码编写,而不是库的管理。通过熟练掌握Maven的依赖引入和管理,开发者可以更高效地进行项目开发和协作。

    maven依赖包2

    【标题】"maven依赖包2"涉及到的是Java开发中重要的构建工具——Maven的依赖管理部分。在Java世界里,Maven是一个广泛使用的项目管理和综合工具,它可以帮助开发者管理和构建Java项目,通过解决项目的依赖关系,使得...

Global site tag (gtag.js) - Google Analytics