千峰商城-springboot项目实战08-创建Maven聚合工程


Maven聚合工程的父工程packing必须为pom。

父工程用于管理子工程,不进行业务实现,因此src目录可以选择性删除。

1.新建一个maven工程

 

2.修改父工程的pom.xml,设置打包方式为pom。

<?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.0modelVersion>

    <groupId>com.qfedugroupId>
    <artifactId>maven-proartifactId>
    <version>1.0-SNAPSHOTversion>
    <packaging>pompackaging>

    <properties>
        <maven.compiler.source>8maven.compiler.source>
        <maven.compiler.target>8maven.compiler.target>
    properties>

project>

删去src文件。

3.创建子工程

 

创建成功后,发现子工程commen的pom继承了父工程。

<?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>maven-pro
        <groupId>com.qfedugroupId>
        <version>1.0-SNAPSHOTversion>
    parent>
    <modelVersion>4.0.0modelVersion>

    <artifactId>commonartifactId>

    <properties>
        <maven.compiler.source>8maven.compiler.source>
        <maven.compiler.target>8maven.compiler.target>
    properties>

project>

而父工程的pom中,自动生成了一个标签,代表被子工程继承。

<?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.0modelVersion>

    <groupId>com.qfedugroupId>
    <artifactId>maven-proartifactId>
    <version>1.0-SNAPSHOTversion>
    <modules>
        <module>commonmodule>
 modules>
    <packaging>pompackaging>

    <properties>
        <maven.compiler.source>8maven.compiler.source>
        <maven.compiler.target>8maven.compiler.target>
    properties>

project>

4.再创建一个spring子工程。

 

 选择依赖。

发现springboot项目继承了spring-boot-starter-parent,而不是继承了父maven项目。

而父工程的pom中也没有引入新创建的springboot项目。

此时可以选择手动继承。(没必要)

删去spring-boot-starter-parent继承,将父工程maven继承拷贝上去。

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0modelVersion>

    
        maven-pro
        com.qfedu
        1.0-SNAPSHOT
    
    
    <groupId>com.qfedugroupId>
    <artifactId>usersystemartifactId>
    <version>0.0.1-SNAPSHOTversion>
    <name>usersystemname>
    <description>Demo project for Spring Bootdescription>
    <properties>
        <java.version>1.8java.version>
    properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>

        <dependency>
            <groupId>org.projectlombokgroupId>
            <artifactId>lombokartifactId>
            <optional>trueoptional>
        dependency>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-testartifactId>
            <scope>testscope>
        dependency>
    dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombokgroupId>
                            <artifactId>lombokartifactId>
                        exclude>
                    excludes>
                configuration>
            plugin>
        plugins>
    build>

project>
 在父工程的pom中声明model。
<?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.0modelVersion>

    <groupId>com.qfedugroupId>
    <artifactId>maven-proartifactId>
    <version>1.0-SNAPSHOTversion>
    <modules>
        <module>commonmodule>
        usersystem
    modules>
    <packaging>pompackaging>

    <properties>
        <maven.compiler.source>8maven.compiler.source>
        <maven.compiler.target>8maven.compiler.target>
    properties>

project>

另一种方式:

在common的java下新建一个包 com.qfedu.beans。

 在新建的包中新建一个类 Goods 。

在usersystem中新建一个service层,GoodsServiceImpl类。

在usersystem中添加依赖:

        <dependency>
            <groupId>com.qfedugroupId>
            <artifactId>commonartifactId>
dependency>

打包common。

此时,在GoodsServiceImpl.java中,可以直接使用Goods!

GoodsServiceImpl.java

package com.qfedu.service;

import com.qfedu.beans.Goods;

public class GoodsServiceImpl {
    private Goods goods;
}

相关