`

转载:maven依赖管理

阅读更多
原文地址:http://chenzhou123520.iteye.com/blog/1582171

Maven提供dependencyManagement 元素既能让子模块继承到父模块的依赖配置,又能保证自模块依赖的使用灵活性。(有选择的继承)
可在accout-parent 中加入:
Xml代码:
<project xmlnsxmlns="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>  


子模块继承代码如下:

Xml代码  
<project xmlnsxmlns="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等元素。
2、version受父管理,父变则子变,便于修改。
3、dependencyManagement一旦定义,可以复用。


例如想要在另外一个模块中使用如父模块中一样的 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>  
分享到:
评论

相关推荐

    【转载】Maven 模块划分

    "app-parent"这个文件名暗示了一个父级模块(Parent Module),通常用来设定子模块共有的配置,如版本管理、依赖管理和构建设置等。通过定义一个父POM(Project Object Model),可以确保所有子模块遵循统一的规范,...

    springboot(体育馆预约管理系统)

    依赖管理包:Maven 代码+数据库保证完整可用,可提供远程调试并指导运行服务(额外付费)~ 如果对系统的中的某些部分感到不合适可提供修改服务,比如题目、界面、功能等等... 声明: 1.项目已经调试过,完美运行...

    springboot(植物健康管理系统)

    依赖管理包:Maven 代码+数据库保证完整可用,可提供远程调试并指导运行服务(额外付费)~ 如果对系统的中的某些部分感到不合适可提供修改服务,比如题目、界面、功能等等... 声明: 1.项目已经调试过,完美运行...

    springboot(新生宿舍管理系统)

    依赖管理包:Maven 代码+数据库保证完整可用,可提供远程调试并指导运行服务(额外付费)~ 如果对系统的中的某些部分感到不合适可提供修改服务,比如题目、界面、功能等等... 声明: 1.项目已经调试过,完美运行...

    springboot(鲜牛奶订购管理系统)

    依赖管理包:Maven 代码+数据库保证完整可用,可提供远程调试并指导运行服务(额外付费)~ 如果对系统的中的某些部分感到不合适可提供修改服务,比如题目、界面、功能等等... 声明: 1.项目已经调试过,完美运行...

    springboot(校园二手书交易系统)

    依赖管理包:Maven 代码+数据库保证完整可用,可提供远程调试并指导运行服务(额外付费)~ 如果对系统的中的某些部分感到不合适可提供修改服务,比如题目、界面、功能等等... 声明: 1.项目已经调试过,完美运行...

    deeplearning4j.zip (自己封装,deeplearning4j和apache的资源)欢迎转载

    1. **依赖管理**:Maven自动解决项目依赖关系,从中央仓库下载所需的库。 2. **标准化构建过程**:提供了一套通用的构建生命周期和阶段,如编译、测试、打包、部署等。 3. **插件系统**:通过插件机制,Maven可以...

    本项目是基于SpringBoot的线上宠物物资购买系统,为个人毕业设计,未经允许禁止转载.zip

    9. **Maven or Gradle**: 构建工具,管理项目的依赖关系和构建流程。 总的来说,这个项目展示了如何利用SpringBoot框架构建一个完整的线上购物系统,涵盖用户注册登录、商品浏览、购物车、订单处理等基本功能,并...

    转载,若依快速开发框架很不错,详情请看https://www.ruoyi.vip/

    6. **Maven或Gradle**:RuoYi项目可能使用Maven或Gradle作为构建工具,这两个工具能够自动化处理依赖管理和构建流程,确保项目的一致性和可复制性。 7. **Git版本控制**:压缩包的命名格式暗示了项目可能是从Git...

    JAVA OA平台源码(转载)SPRING BOOT....

    6. **Maven或Gradle构建**:Spring Boot项目通常使用Maven或Gradle作为构建工具,管理项目的依赖关系。通过pom.xml(Maven)或build.gradle(Gradle)文件,可以声明项目需要的库,并自动下载和管理它们。 7. **...

    Spring + Quartz配置实例(转载)

    1. **Quartz的配置**:首先,你需要在项目的类路径下添加Quartz库的依赖,这通常通过Maven或Gradle的依赖管理来完成。在`lib`目录下可能包含了Quartz的JAR文件,这是运行Quartz的基础。 2. **Spring配置文件**:在...

    Ehcache集成Spring的使用(转载)

    1. **引入依赖**: 在 Maven 或 Gradle 的配置文件中添加 Ehcache 和 Spring 相关的依赖。例如,如果是 Maven,可以在 `pom.xml` 文件中加入如下依赖: ```xml &lt;groupId&gt;net.sf.ehcache&lt;/groupId&gt; &lt;artifactId&gt;...

    Castor学习笔记 (转载)

    Castor的源码是开放的,可以在其官方仓库或者通过Maven仓库获取,这对于进行定制开发或优化性能非常有帮助。 8. 测试与验证 `test.xml`可能是测试用例的数据文件,用于验证映射配置是否正确,以及Castor序列化和反...

    JBPM的开发指南,转载过来的

    首先,你需要安装Java开发环境(JDK)和Maven,然后配置JBPM的依赖库到项目中。 #### 3.2 创建流程定义 使用BPMN编辑器创建流程图,保存为`.bpmn2`文件。 #### 3.3 编写Java代码 实现流程的业务逻辑,这可能涉及到...

    JUnit 5.pdf

    JUnit 5在依赖管理方面提供了元数据和依赖关系图,旨在帮助开发者更好地管理项目中的依赖项,它支持使用Maven和Gradle等构建工具,同时也提供了命令行启动器。在编写测试方面,JUnit 5提供了丰富的注解来标记测试...

    jsr168 portlet(struts2+spring2.5+hibernate3.3)(转载)

    结合JSR168,这个项目可能是创建了一个支持portlet的Web应用,其中Struts2负责前端用户界面的控制流,Spring2.5用于管理portlet的依赖和服务,而Hibernate3.3则作为数据访问层,处理数据库交互。这种架构允许开发者...

    Java面试资料大集合

    - **Spring框架**:依赖注入(DI)、AOP、事务管理等核心概念。 - **MyBatis**:持久层框架,动态SQL和映射文件的使用。 - **Maven或Gradle**:构建工具的使用和配置。 9. **数据库** - **SQL语句**:增删改查...

    pay5160:https的转载者

    在实际操作中,首先需要解压`pay5160-master`文件,然后根据项目的构建工具(可能是Maven或Gradle)来管理依赖和构建项目。如果是Maven项目,可以使用`mvn clean install`命令来构建和测试;如果是Gradle项目,可以...

    android 调用微信扫一扫(调用微信.so实现)

    在Android平台上,调用微信扫一扫功能通常涉及到集成微信官方提供的SDK,这一过程主要依赖于微信的动态链接库(.so文件),使得应用能够调用到...在实际开发中,还需要关注兼容性、权限管理和用户体验等方面的问题。

Global site tag (gtag.js) - Google Analytics