java之父子工程项目(module的使用)

一,我们使用idea新建项目,都是默认下一步即可

1》如下如

 2》新建出来是这个结构,删除src,把这个当作父工程

 3》新键两个module当作子工程

 4》结构如下图

 二,这个时候父工程的pom.xml文件会自动添加如下代码,结构如下

1》如下代码

   <modules>
        <module>testA</module>
        <module>testB</module>
    </modules>

2》我们将子工程添加到父工程管理,统一管理依赖版本,父工程完整的pom.xml代码如下(PS:dependencyManagement和dependencies区别就是只是管理,可是没有引入,子父工程依赖版本管理的关键,详细的区别可以百度下~~~)

<?xml version="1.0" encoding="UTF-8"?>
<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.nl.test</groupId>
    <artifactId>test-demo</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>testA</module>
        <module>testB</module>
    </modules>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>2.2.3.RELEASE</version>
    </parent>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.nl.test</groupId>
            <artifactId>testB</artifactId>
            <version>${project.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>
</project>

PS:这个管理必须跟testB的pom.xml一样

 

 testB的pom.xml如下

 

3》我们看下testB的pom.xml,有个点必须要注意,这和<packaging>jar</packaging>必要要添加,要不然一直识别不了引用,如下代码

<?xml version="1.0" encoding="UTF-8"?>
<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">
    <parent>
        <artifactId>test-demo</artifactId>
        <groupId>com.nl.test</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <!--必须加,这个是可以被引用的必须配置-->
    <packaging>jar</packaging>
    <artifactId>testB</artifactId>


</project>

三,步骤都准备完成,我们去TestA的TestApplication引用下,如下图,引用成功

 总结:

1》要注意被引用的包的groupId和artifactId是否一直

2》要注意被引用的包添加<packaging>jar</packaging>

原文地址:https://www.cnblogs.com/May-day/p/14087111.html