zoukankan      html  css  js  c++  java
  • (5)Maven快速入门_5maven聚合与继承_scope依赖范围

    多个maven项目实现统一管理, maven 插件jar继承自父的maven项目。对maven中jar的版本进行管理。

    1、创建一个项目来管理多个maven项目

    new ----maven Project 

    勾选 Create  a simple  project(skip archetype selection)  

    next  :填写项目信息, packaging  选 pom 。

    创建完成后项目目录结构如下:

    编辑 pom.xml配置文件

    1、maven  聚合: 统一管理多个maven模块项目,统一执行编译 ,清理,安装

     需要配置:  <modules>  </modules> 来管理多个maven项目, (配置完成后,直接点击 此项目的pom.xml 文件右键运行,即可使管理的多个maven项目同时maven install、maven clean 简化了操作)

     <!-- (maven的聚合:) 统一管理多个maven模块项目,统一执行编译 ,清理,安装 -->
      <modules>
      <!-- 管理处在同一级目录的项目,先回到父目录再找需要管理的目录 -->
      <module>../dao</module>
      <module>../service</module>
      </modules>

    2、dao 、service 、controller 项目中 引入的maven jar 统一配置到 extendsagg项目中, 再 dao 、servcie 、controller 中 配置 <parent></parent> 可简化自身项目的pom.xml配置,引入jar的版本也可以统一继承自父项目。

     <!--    maven继承自父项目 -->
      <parent>
      <groupId>com.inspur.smvc</groupId>
      <artifactId>extendsagg</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <relativePath>../extendsagg/pom.xml</relativePath>
      </parent>
      <!--   本项目信息 继承父项目 可简化-->
      <artifactId>controller</artifactId>
      <packaging>war</packaging>
    
     <!-- 添加Spring支持  继承父项目 可简化版-->
        <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-core</artifactId>
          </dependency>

    3、maven 父项目  extendsagg  项目中pom.xml   中  jar 信息 的版本号 进行统一设置。

    <!--  各个 maven插件  引入的jar的版本统一管理 -->
      <properties>
      <spring.version>4.1.7.RELEASE</spring.version>
      <log4j.version>1.2.17</log4j.version>
      <junit.version>4.12</junit.version>
      </properties>
    
     <!-- https://mvnrepository.com/artifact/log4j/log4j -->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4j.version}</version>
    </dependency>
    
    <!--   spring start-->
    <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-tx</artifactId>
             <version>${spring.version}</version>
            </dependency>

    controller maven模块的pom.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/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <!--    maven继承自父项目 -->
      <parent>
      <groupId>com.inspur.smvc</groupId>
      <artifactId>extendsagg</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <relativePath>../extendsagg/pom.xml</relativePath>
      </parent>
      <!--   本项目信息 -->
      <artifactId>controller</artifactId>
      <packaging>war</packaging>
      
      
    <!--   <name>controller Maven Webapp</name> -->
    <!--   <url>http://maven.apache.org</url> -->
      
      
      <dependencies>
      
    <!--   引入service -->
      <dependency>
       <groupId>com.inspur.smvc</groupId>
       <artifactId>service</artifactId>
       <version>0.0.1-SNAPSHOT</version>
      </dependency>
      
      <!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl -->
    <dependency>
        <groupId>javax.servlet.jsp.jstl</groupId>
        <artifactId>jstl</artifactId>
    </dependency>
      
      <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>javax.servlet.jsp-api</artifactId>
        <scope>provided</scope>
    </dependency>
      
      
      <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <scope>provided</scope>
    </dependency>
      
      <!-- 添加Spring支持 -->
        <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-tx</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>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
        </dependency>
        
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
        </dependency>
        
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
      <build>
        <finalName>controller</finalName>
      </build>
    </project>

    dao maven模块的pom.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>
    
    <!--    maven继承自父项目 -->
      <parent>
      <groupId>com.inspur.smvc</groupId>
      <artifactId>extendsagg</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <relativePath>../extendsagg/pom.xml</relativePath>
      </parent>
    <!-- 本项目信息 -->
      <artifactId>dao</artifactId>
      <packaging>jar</packaging>
        <!--  注释
      <name>dao</name>
      <url>http://maven.apache.org</url>
         -->
         
    <!--      <build>      -->
    <!--         <resources> -->
    <!--             编译之后包含xml -->
    <!--             <resource> -->
    <!--                 <directory>src/main/java</directory> -->
    <!--                 <includes> -->
    <!--                     <include>**/*.xml</include> -->
    <!--                 </includes> -->
    <!--                 <filtering>true</filtering> -->
    <!--             </resource> -->
    <!--             编译之后包含xml -->
    <!--             <resource> -->
    <!--                 <directory>src/main/resources</directory> -->
    <!--                 <includes> -->
    <!--                     <include>*.xml</include> -->
    <!--                 </includes> -->
    <!--                 <filtering>true</filtering> -->
    <!--             </resource> -->
    <!--         </resources> -->
    <!--     </build> -->
         
         
    
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      </properties>
    
      <dependencies>
      
      <!-- https://mvnrepository.com/artifact/log4j/log4j -->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
    </dependency>
      
      
    <!-- https://mvnrepository.com/artifact/oracle/ojdbc -->
    <dependency>
      <groupId>com.oracle</groupId>
      <artifactId>ojdbc6</artifactId>
      <version>11.2.0</version>
     
    </dependency>
    
    <!--         <dependency>   -->
    <!--             <groupId>commons-dbcp</groupId>   -->
    <!--             <artifactId>commons-dbcp</artifactId>   -->
    <!--             <version>1.2.2</version>   -->
    <!--         </dependency>   -->
    
    <!-- mybatis -->
          <dependency>
            <groupId>org.mybatis</groupId>
          <artifactId>mybatis</artifactId>
        </dependency>
    <!--  junit4.12 -->
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </project>

    service maven 模块的pom.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>
      
      <!--    maven继承自父项目 -->
      <parent>
      <groupId>com.inspur.smvc</groupId>
      <artifactId>extendsagg</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <relativePath>../extendsagg/pom.xml</relativePath>
      </parent>
      
      <!--   本项目的maven插件信息 -->
      <artifactId>service</artifactId>
      <packaging>jar</packaging>
      
      
      
    
    <!--   <name>service</name> -->
    <!--   <url>http://maven.apache.org</url> -->
    
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      </properties>
    
      <dependencies>
      
      <!-- 依赖 dao -->
      <dependency>
      <groupId>com.inspur.smvc</groupId>
      <artifactId>dao</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      </dependency>
      
      
      <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
    </dependency>
      
      
    <!--   spring start-->
        <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-tx</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>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
        </dependency>
          
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
        </dependency>
        
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
        </dependency>
        
        
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
        </dependency>
    
        
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
        </dependency>
    
    <!-- spring end   -->
      
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </project>

    extendsagg maven 父项目统一管理 pom.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>com.inspur.smvc</groupId>
      <artifactId>extendsagg</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <packaging>pom</packaging>
      
      <!-- (maven的聚合:) 统一管理多个maven模块项目,统一执行编译 ,清理,安装 -->
      <modules>
      <!-- 管理处在同一级目录的项目,先回到父目录再找需要管理的目录 -->
      <module>../dao</module>
      <module>../service</module>
      </modules>
      
      <!--  各个 maven插件  引入的jar的版本统一管理 -->
      <properties>
      <spring.version>4.1.7.RELEASE</spring.version>
      <log4j.version>1.2.17</log4j.version>
      <junit.version>4.12</junit.version>
      </properties>
      
      
      
     <dependencyManagement>
     <dependencies>
    <!--     dao start -->
         <!-- https://mvnrepository.com/artifact/log4j/log4j -->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4j.version}</version>
    </dependency>
      
      
    <!-- https://mvnrepository.com/artifact/oracle/ojdbc -->
    <dependency>
      <groupId>com.oracle</groupId>
      <artifactId>ojdbc6</artifactId>
      <version>11.2.0</version>
     
    </dependency>
    
    <!--         <dependency>   -->
    <!--             <groupId>commons-dbcp</groupId>   -->
    <!--             <artifactId>commons-dbcp</artifactId>   -->
    <!--             <version>1.2.2</version>   -->
    <!--         </dependency>   -->
    
    <!-- mybatis -->
          <dependency>
            <groupId>org.mybatis</groupId>
          <artifactId>mybatis</artifactId>
          <version>3.4.6</version>
        </dependency>
    <!--  junit4.12 -->
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>${junit.version}</version>
          <scope>test</scope>
        </dependency>
    <!--     dao end -->
    
    <!-- service start -->
     <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>1.3.2</version>
    </dependency>
      
      
    <!--   spring start-->
        <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-tx</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-context-support</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>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${spring.version}</version>
        </dependency>
        
        
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>${spring.version}</version>
        </dependency>
    
        
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
    
    <!-- service end -->
    
    <!-- controller start -->
     <!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl -->
    <dependency>
        <groupId>javax.servlet.jsp.jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
      
      <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>javax.servlet.jsp-api</artifactId>
        <version>2.3.1</version>
        <scope>provided</scope>
    </dependency>
      
      
      <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
        <scope>provided</scope>
    </dependency>
      
    <!-- controller end -->
    
        
     </dependencies>
     </dependencyManagement>
      
      
      
      
    </project>

     pom.xml中

    scope 选项 :

    Compile(默认) 编译 依赖范围 :编译、测试、运行都有效;

    Test 测试 依赖范围 :仅测试有效;例如 JUnit;

    Provided 已提供 依赖范围 : 编译,测试有效,运行时无效。例如 servlet-api。

    System 系统 依赖范围 : 使用system范围的依赖必须通过systemPath 指定依赖文件的路径。
    Import 导入 依赖范围 : 使用dependencyManagement时候,可以导入依赖配置。

  • 相关阅读:
    GitHub 优秀的 Android 开源项目
    Android SDK代理服务器解决国内不能更新下载问题
    python拓展3 常用算法
    HTML+CSS实现页面
    数据库入门4 结构化查询语言SQL
    2016年蓝桥杯预选赛试题(水题)
    linux操作系统3 vi编辑器
    python应用之爬虫实战2 请求库与解析库
    python应用之爬虫实战1 爬虫基本原理
    SQL常用条件操作符
  • 原文地址:https://www.cnblogs.com/prefectjava/p/9347252.html
Copyright © 2011-2022 走看看