-
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>
-
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>