maven中的父子工程


  1. maven中的父工程

  • 创建的maven父工程中一般打包方式为pom,使用标签: <packaging>pom</packaging>

  • 指定此父目下的子模块,使用标签: <modules></modules>

  • 统一管理jar包版本,抽取处的同一个jar包的版本号,使用标签: <properties></properties>

  • 锁定版本+子modlue不用写groupId和version,使用标签:<dependencyManagement></dependencyManagement>,这个标签和java继承很像,子项目中必须要引入对应的依赖才可以使用,子项目仅仅是不需要写groupId和version,子项目必须使用 <dependency></dependency> 才可以使用。

       <!--子项目必须引入才可以使用mysql的jar包-->
      <dependency>
      	<groupId>mysql</groupId>
      	<artifactId>mysql-connector-java</artifactId>
      </dependency>
    
    父项目的 pom.xml 如下
  •   <!--该标签指定打包方式,一般都在父工程中使用这个标签-->
      <packaging>pom</packaging>
      
      <!--该标签指定此项目下的子模块,目前有三个模块:order,Payment,common-->
      <modules>
      	<module>order</module>
      	<module>Payment</module>
      	<module>common</module>
      </modules>
      
          <!-- 统一管理jar包版本,如果很多地方都使用的相同jar包,可以用这种方式统一管理版本,以后在这里更改版本号就所有的都生效 -->
      <properties>
      	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      	<maven.compiler.source>1.8</maven.compiler.source>
      	<maven.compiler.target>1.8</maven.compiler.target>
      	<junit.version>4.12</junit.version>
      	<log4j.version>1.2.17</log4j.version>
      	<lombok.version>1.16.18</lombok.version>
      	<mysql.version>5.1.47</mysql.version>
      	<druid.version>1.1.16</druid.version>
      	<mybatis.spring.boot.version>1.3.0</mybatis.spring.boot.version>
      </properties>
      
          <!-- 子模块继承之后,提供作用:锁定版本+子modlue不用写groupId和version  -->
      <dependencyManagement>
           <dependency>
              <groupId>mysql</groupId>
              <artifactId>mysql-connector-java</artifactId>
              <version>${mysql.version}</version><!--这个就是使用上面管理的版本号-->
          </dependency>
    	</dependencyManagement>
    
  1. maven中的子项目

  • 子项目使用的maven依赖版本可以继承父项目的版本,也可以指定使用某个版本;

  • 如果子项目的依赖没有声明版本号(没写)那就默认继承父项目的版本号,如果写了版本号就使用自己的版本;

       <dependency>
              <groupId>com.alibaba</groupId>
              <artifactId>druid</artifactId>
              <version>${druid.version}</version>
      	<!--<version>1.2.6</version>-->使用这个即指定版本,不继承父项目的版本
          </dependency>
    
  • 调用另一个模块的代码,需要引用,使用如下标签引入自己项目中的模块

      <!-- 引入自己定义的通用包,可以实现代码复用 -->
      <dependency>
          <groupId>com.fj.cloud</groupId>
          <artifactId>common</artifactId>
          <version>1.0-SNAPSHOT</version>
      </dependency>
    


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM