首页 > 其他分享 >Maven多模块管理

Maven多模块管理

时间:2022-12-26 16:35:13浏览次数:44  
标签:maven parent 工程 管理 Maven pom 模块 mysql

项目的目录结构:

一、创建父工程的必须遵循以下两点:

1、packaging标签的文本内容必须设置为pom

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 5     <modelVersion>4.0.0</modelVersion>
 6 
 7     <groupId>com.example</groupId>
 8     <artifactId>maven-parent</artifactId>
 9     <version>1.0.0</version>
10 
11     <packaging>pom</packaging>
12 
13 </project>

2、把父工程中的src目录删除掉

 二、创建子工程

1、新建module,勾选模块maven-parent为父模块

 2、子模块的pom文件中,parent标签关联了父工程。父工程中新增modules标签,关联了子模块

子模块的pom文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 5     <parent>
 6         <artifactId>maven-parent</artifactId>
 7         <groupId>com.example</groupId>
 8         <version>1.0.0</version>
 9     </parent>
10 
11     <modelVersion>4.0.0</modelVersion>
12 
13     <artifactId>maven-child</artifactId>
14 
15 </project>

父工程的pom文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 5     <modelVersion>4.0.0</modelVersion>
 6 
 7     <groupId>com.example</groupId>
 8     <artifactId>maven-parent</artifactId>
 9     <version>1.0.0</version>
10 
11     <modules>
12         <module>maven-child</module>
13     </modules>
14 
15     <packaging>pom</packaging>
16 
17 </project>

三、父工程管理依赖

由于子工程是无条件继承父工程的所有依赖,使用<dependencyManagement>标签统一进行依赖管理,<properties>标签管理依赖的版本号。子工程使用声明式方式实现依赖的有需要继承,防止子模块中的依赖冗余。

 1 <!--统一管理依赖的版本号-->
 2     <properties>
 3         <mysql.version>8.0.25</mysql.version>
 4         <junit.version>4.13.2</junit.version>
 5     </properties>
 6 
 7     <!--统一进行依赖管理-->
 8     <dependencyManagement>
 9         <dependencies>
10             <dependency>
11                 <groupId>mysql</groupId>
12                 <artifactId>mysql-connector-java</artifactId>
13                 <version>${mysql.version}</version>
14             </dependency>
15             <dependency>
16                 <groupId>junit</groupId>
17                 <artifactId>junit</artifactId>
18                 <version>${junit.version}</version>
19                 <scope>test</scope>
20             </dependency>
21         </dependencies>
22     </dependencyManagement>

四、子工程按需要声明式继承依赖

<dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
</dependencies>

 

标签:maven,parent,工程,管理,Maven,pom,模块,mysql
From: https://www.cnblogs.com/gagaxiang/p/17005979.html

相关文章

  • Python模块学习,模块是,什么
    模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。模块名要遵循Python变量命名规范,不要使用中文、特殊字......
  • 个人的项目管理模板
    具体内容项目时间:项目PRD:2.6.6项目UI稿:2.6.6项目API:详见2.6.6PRD项目本地开发地址:项目分支:v2.6.6相关人员产品经理:PRD上有设计师+交互:前端:自己做后端:测试:项目......
  • Django:auth认证模块
    目录一、django的auth认证模块1.什么是auth模块2.生成auth物理表二、创建django-admin账户1.创建超级管理员2.注册超级管理员账户3.登录admin账户三、auth模块中的方法1.导......
  • Python之进程管理
    使用python创建进程frommultiprocessingimportProcess #导入进程模块importtime#定义一个函数,测试创建进程使用deftask(name):print(name,'我是一个进......
  • 盘点五个小而精的项目管理工具(免费,建议收藏)
    1、比牛工作流这是我用过的最好用的工作流管理工具!没用过的绝对要体验一下!比牛主要是针对中、小团队,无论是它的操作逻辑还是交互体验,都可以算作是高水准了,关键还是免费的!(可......
  • Maven精讲课程详情
    Maven精讲课程详情一.课程介绍本套视频课程为 IT私塾 出品的《跟一一哥学Java》系列课程之Maven课程。分类名称操作系统无要求环境要求JDK1.7+注意:本课程配套视频为随堂视......
  • 启动Maven项目时遇到的那点麻烦事儿
    1.Maven异常很多初学者在刚开始使用maven构建项目时,总会时不时的遇到一些解决不了的问题,让人抓耳挠腮,花费很长的时间想办法进行解决。今天壹哥就来给大家说一个最简单、最......
  • python之路56 csrf跨站请求 auth模块登录注册方法
    csrf跨站请求伪造钓鱼网站:模仿一个正规的网站让用户在该网站上做操作但是操作的结果会影响到用户正常的网站账户但是其中有一些猫腻eg:英语四六级考试需要网上先......
  • Android 程序自动更新功能模块实现
    在程序启动的时候检测服务器上有没有对应版本更新,如果有更新,提示用户是否更新。在程序启动的时候首先调用更新模块检测服务器上存放的版本号跟当前程序的版本号如果大于当......
  • 非隔离负电压输出线性可调直流升压电源模块GRB系列12V24V转0-负50V/100V/250V/200V/38
    特点●效率高达70%以上●1*2英寸标准封装●单电压负输出●价格低●电压控制,输出电压随控制电压变化线性变化●工作温度:-40℃~+85℃●阻燃封装,满足UL94-V0要求●......