【Maven】009-Maven 简单父子工程搭建

【Maven】009-Maven 简单父子工程搭建

文章目录

  • 【Maven】009-Maven 简单父子工程搭建
  • 一、需求说明
    • 1、结构
    • 2、第三方库
  • 二、工程搭建
    • 1、父工程
      • 第一步:创建父工程
      • 第二步:引入公共依赖 lombok 和管理 hutool 依赖版本
    • 2、公共子模块
      • 第一步:创建子模块
      • 第二步:公共子模块引入 hutool 依赖
      • 第三步:写一个简单的工具类
    • 3、教师子模块
      • 第一步:创建子模块,并引入公共子模块
      • 第二步:使用公共子模块内的工具类
  • 三、最终的 Maven 父子工程
    • 1、pom.xml 文件
      • 父工程
      • 公共子模块
      • 教师模块
    • 2、整体结构

一、需求说明

1、结构

父工程为学校,子工程(模块)有两个:通用模块、教师模块。

2、第三方库

lombok:每个子工程都需要,直接在父工程引入依赖;

hutool:在父工程管理依赖版本。

二、工程搭建

1、父工程

第一步:创建父工程

【Maven】009-Maven 简单父子工程搭建_第1张图片

第二步:引入公共依赖 lombok 和管理 hutool 依赖版本


<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.zibogroupId>
    <artifactId>schoolartifactId>
    <version>1.0-SNAPSHOTversion>

    <properties>
        <maven.compiler.source>17maven.compiler.source>
        <maven.compiler.target>17maven.compiler.target>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    properties>

    
    <dependencies>
        <dependency>
            <groupId>org.projectlombokgroupId>
            <artifactId>lombokartifactId>
            <version>1.18.30version>
        dependency>
    dependencies>

    
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>cn.hutoolgroupId>
                <artifactId>hutool-allartifactId>
                <version>5.8.24version>
            dependency>
        dependencies>
    dependencyManagement>
project>

2、公共子模块

第一步:创建子模块

IDEA 中选择将 school 作为父工程后会自动修改 pom.xml 文件!

父工程的 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.0modelVersion>

    <groupId>com.zibogroupId>
    <artifactId>schoolartifactId>
    <version>1.0-SNAPSHOTversion>
    <packaging>pompackaging>
    <modules>
        <module>commonmodule>
    modules>

    <properties>
        <maven.compiler.source>17maven.compiler.source>
        <maven.compiler.target>17maven.compiler.target>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    properties>

    
    <dependencies>
        <dependency>
            <groupId>org.projectlombokgroupId>
            <artifactId>lombokartifactId>
            <version>1.18.30version>
        dependency>
    dependencies>

    
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>cn.hutoolgroupId>
                <artifactId>hutool-allartifactId>
                <version>5.8.24version>
            dependency>
        dependencies>
    dependencyManagement>
project>

子工程的 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.0modelVersion>
    <parent>
        <groupId>com.zibogroupId>
        <artifactId>schoolartifactId>
        <version>1.0-SNAPSHOTversion>
    parent>

    <artifactId>commonartifactId>

    <properties>
        <maven.compiler.source>17maven.compiler.source>
        <maven.compiler.target>17maven.compiler.target>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    properties>

project>

第二步:公共子模块引入 hutool 依赖

在 pom.xml 中


<dependencies>
    <dependency>
        <groupId>cn.hutoolgroupId>
        <artifactId>hutool-allartifactId>
    dependency>
dependencies>

第三步:写一个简单的工具类

package com.zibo;

import cn.hutool.core.util.StrUtil;

public class MyStringUtils {

    public static boolean isBlank(String str){
        return StrUtil.isBlank(str);
    }

}

3、教师子模块

第一步:创建子模块,并引入公共子模块


<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>
    <parent>
        <groupId>com.zibogroupId>
        <artifactId>schoolartifactId>
        <version>1.0-SNAPSHOTversion>
    parent>

    <artifactId>teacherartifactId>

    <properties>
        <maven.compiler.source>17maven.compiler.source>
        <maven.compiler.target>17maven.compiler.target>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    properties>

    <dependencies>
        
        <dependency>
            <groupId>com.zibogroupId>
            <artifactId>commonartifactId>
            <version>1.0-SNAPSHOTversion>
        dependency>
    dependencies>

project>

第二步:使用公共子模块内的工具类

package com.zibo;
public class Main {

    public static void main(String[] args) {
        // 使用自定义的字符串工具类
        System.out.println(MyStringUtils.isBlank(" "));
    }
}

三、最终的 Maven 父子工程

1、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.0modelVersion>

    <groupId>com.zibogroupId>
    <artifactId>schoolartifactId>
    <version>1.0-SNAPSHOTversion>
    <packaging>pompackaging>
    <modules>
        <module>commonmodule>
        <module>teachermodule>
    modules>

    <properties>
        <maven.compiler.source>17maven.compiler.source>
        <maven.compiler.target>17maven.compiler.target>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    properties>

    
    <dependencies>
        <dependency>
            <groupId>org.projectlombokgroupId>
            <artifactId>lombokartifactId>
            <version>1.18.30version>
        dependency>
    dependencies>

    
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>cn.hutoolgroupId>
                <artifactId>hutool-allartifactId>
                <version>5.8.24version>
            dependency>
        dependencies>
    dependencyManagement>
project>

公共子模块


<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>
    <parent>
        <groupId>com.zibogroupId>
        <artifactId>schoolartifactId>
        <version>1.0-SNAPSHOTversion>
    parent>

    <artifactId>commonartifactId>

    <properties>
        <maven.compiler.source>17maven.compiler.source>
        <maven.compiler.target>17maven.compiler.target>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    properties>

    
    <dependencies>
        <dependency>
            <groupId>cn.hutoolgroupId>
            <artifactId>hutool-allartifactId>
        dependency>
    dependencies>

project>

教师模块


<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>
    <parent>
        <groupId>com.zibogroupId>
        <artifactId>schoolartifactId>
        <version>1.0-SNAPSHOTversion>
    parent>

    <artifactId>teacherartifactId>

    <properties>
        <maven.compiler.source>17maven.compiler.source>
        <maven.compiler.target>17maven.compiler.target>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    properties>

    <dependencies>
        
        <dependency>
            <groupId>com.zibogroupId>
            <artifactId>commonartifactId>
            <version>1.0-SNAPSHOTversion>
        dependency>
    dependencies>

project>

2、整体结构

【Maven】009-Maven 简单父子工程搭建_第2张图片

你可能感兴趣的:(Maven,maven,java)