一 、什么是 maven 子父级工程?

建立一个maven项目,然后在该项目 下创建一个module,子级的maven,他继承于父级项目。

1.新建立 maven项目,file  ------new----project----maven,不使用它的模板。直接选择 ----next

完成,将父级工程的src 干掉?

父级工程的xml配置信息。

<?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.aaa</groupId>
<artifactId>DemoSpringBoot</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version> <!--modules 模块标签
1. 所有的父级工程 作用是管理jar包 不参与任何逻辑算法。所以可以干掉 SRC
2. 列举了父工程中的所有子模块,子工程可以自动继承父级工程中的jar包
3. 每一个子模块都代表了不同的包(package)
-->
<modules>
<module>mapper</module>
<module>model</module>
<module>service</module>
<module>web</module>
</modules> <dependencies>
<!-- 在父级工程中,添加一些jar 包。
mysql的驱动包
-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
<version>1.9.21</version>
</dependency>
<!--
spring
-->
<!--
mybatis
-->
<!--
shiro
--> </dependencies> </project>

2.在父级工程下,右键点节,建立子级module  。

根据需求,建立一些其他的子级工程。

二、<dependencyManagement>标签。

思考?子级工程自动继承父级工程的jar包,可是,根据需要,有些子级工程不需要继承父级的jar包,但是依旧继承了,怎么处理?

2.1解决方案。父级xml 文件配置。

<?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.aaa</groupId>
<artifactId>DemoSpringBoot</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>mapper</module>
<module>model</module>
<module>service</module>
<module>web</module>
</modules> <!-- 思考问题?
model项目中用不到shiro,但是父子工程的规则也需要把shiro的jar加载进来,影响项目的进度和运行速度,如何解决? <denpencyManagement>标签作用 1. 被<denpencyManagement>所控制的jar包,不会被子工程所继承,如果子工程有需要,可以重写父工程中的jar包,并且不需要携带版本号
2. 如果不省略版本号,则jar包会从maven中进行下载,并不再是从父工程中重写的jar包 优点?
1.方便jar包管理,父子工程。
2.解决jar包冗余问题。层级依赖。
-->
<dependencyManagement>
<dependencies>
<!--
mysql的驱动包
-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
<version>1.9.21</version>
</dependency> </dependencies>
</dependencyManagement> </project>

2.2 子级想要继承。以mapper为列。

<?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>DemoSpringBoot</artifactId>
<groupId>com.aaa</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion> <artifactId>mapper</artifactId> <!--
1. 子工程如果需要,重写父级工程的jar包即可,但是不能 携带版本号 2.将父级工程中的jar包 直接复制过来,但是不可携带版本号。
--> <dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies> </project>

三、实体类的定义规则

package com.aaa.entity;
import java.io.Serializable;
/*
* * 从今天开始,所有的实体类必须按照以下标准
* 1.需要实现序列化接口
* 2.需要重写hashCode和equalse
* 3.需要重写toString()
* 4.必须有getter和setter方法
* 5.要求所有的类型全部为包装类型,不能使用基本类型
*
*
* 注意: 2.需要重写hashCode和equalse
*
* */ public class User implements Serializable {
private Long id;
private String username;
private String password;
private Integer age; public Long getId() {
return id;
} public void setId(Long id) {
this.id = id;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
} @Override
public boolean equals(Object object) {
if (this == object) return true;
if (object == null || getClass() != object.getClass()) return false; User user = (User) object; if (id != null ? !id.equals(user.id) : user.id != null) return false;
if (username != null ? !username.equals(user.username) : user.username != null) return false;
if (password != null ? !password.equals(user.password) : user.password != null) return false;
return age != null ? age.equals(user.age) : user.age == null;
} @Override
public int hashCode() {
int result = id != null ? id.hashCode() : 0;
result = 31 * result + (username != null ? username.hashCode() : 0);
result = 31 * result + (password != null ? password.hashCode() : 0);
result = 31 * result + (age != null ? age.hashCode() : 0);
return result;
} @Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", age=" + age +
'}';
}
}
  注意:  2.需要重写hashCode和equalse  确定的类型

												

maven项目 子父级工程。的更多相关文章

  1. idea下创建maven聚合(子父级)项目,多模块项目

    IDEA下Maven多模块项目介绍和搭建 idea 创建maven聚合项目简洁教程(手把手入门,通俗易懂) 本人使用的是: intelj idea 创建聚合项目(典型web项目,包括子项目util.d ...

  2. Intellij Idea 导入多个maven项目,通过父工程引入子工程

    刚刚要开始从eclipse切换成idea,据说idea功能强大,可是刚刚开始使用很多不习惯,导入第二个maven项目时之前的项目就没了,比较苦恼,下面介绍下导入多个maven项目展示在左侧栏Maven ...

  3. 【idea】idea重新打包依赖了父级项目的子级项目,父级项目代码改变,但是子级项目打包依旧是老的代码 问题解决

    最简单的方法: 就是单独打包父级项目,然后替换本地maven仓库中的父级项目的jar,然后重新打包子级项目,就可以了.

  4. JS 的子父级页面调用

    window.frames["iframevehquery"].add(); // 父页面调用嵌套子页面的js函数, iframevehquery 为 iframe 的name值, ...

  5. 使用Oracle数据库实现树形结构表的子-父级递归查询和删除,通过级联菜单简单举例

    前言: 我们在开发中,常常遇到单表的子-父id级联的表结构,在树形的深度不确定的情况下,一次查询出某个树形结构下的所有具有子-父级关系的数据变得十分困难. 这时,我们使用oracle提供的CONNEC ...

  6. 使用postgre数据库实现树形结构表的子-父级迭代查询,通过级联菜单简单举例

    前言:开发常用的关系型数据库MySQL,mssql,postgre,Oracle,简单的增删改查的SQL语句都与标准SQL兼容,这个不用讲,那么对于迭代查询(不严格的叫法:递归查询)每种数据库都不一样 ...

  7. 使用Oracle数据库实现树形结构表的子-父级迭代(递归)查询和删除,通过级联菜单简单举例

    前言: 我们在开发中,常常遇到单表的子-父id级联的表结构,在树形的深度不确定的情况下,一次查询出某个树形结构下的所有具有子-父级关系的数据变得十分困难. 这时,我们使用oracle提供的CONNEC ...

  8. mysql获取子父级节点

    获取所有子节点 DROP FUNCTION IF EXISTS `F_Co29_GetAllChildrenIdsOfTaskevent`;DELIMITER //CREATE FUNCTION `F ...

  9. Java-Maven(九):Maven 项目pom文件引入工程根目录下lib文件夹下的jar包

    由于项目一些特殊需求,pom依赖的包可能是非Maven Repository下的包文件,因此无法自己从网上下载.此时,我们团队git上对该jar使用. Maven项目pom引入lib下jar包 在ec ...

随机推荐

  1. 1002 - Country Roads(light oj)

    1002 - Country Roads I am going to my home. There are many cities and many bi-directional roads betw ...

  2. Codeforces 919D:Substring(拓扑排序+DP)

    D. Substring time limit: per test3 seconds memory limit: per test256 megabytes inputstandard: input ...

  3. Spring中的@Bean注解

    @Bean 基础概念 @Bean:Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理.产生这个Bean对象的方法Spring只会调用一次,随后这个 ...

  4. Sublime Text 3菜单栏隐藏后怎么显示

    Sublime Text 3如何显示菜单栏 今天在使用Sublime Text 3敲代码的时候不小心就把上侧的菜单栏隐藏了,自己鼓捣了半天才把菜单栏弄出来,下面我就给大家讲解一下我是如何操作的 键盘按 ...

  5. 求最大公因数和最小公倍数(C++实现)

    求两个正整数之最大公因子的算法(辗转相除法) 最大公约数是指能同时整除它们的最大正整数 基本原理:两个数的最大公约数等于它们中较小的数和两数之差的最大公约数. 就如有 a = 122, b =  54 ...

  6. Spring企业级程序设计 • 【第4章 Spring持久化层和事务管理】

    全部章节   >>>> 本章目录 4.1 配置数据源资源 4.1.1 JdbcTemplate介绍 4.1.2通过ComboPooledDataSource创建数据源 4.1. ...

  7. Java EE数据持久化框架 • 【第5章 MyBatis代码生成器和缓存配置】

    全部章节   >>>> 本章目录 5.1 配置MyBatis Generator 5.1.1 MyBatis Generator介绍 5.1.2 MyBatis Generat ...

  8. MyBatis练习——使用MyBatis查询所有职员信息

    实现要求: 使用MyBatis查询所有职员信息 create table employee( id int not null auto_increment, name varchar(255) not ...

  9. Hexo博客部署到腾讯云服务器全过程(Nginx,证书,HTTPS),你要的这里都有

    背景 说来也惭愧,博客已经搭建很久了,一直免费的部署在 Coding 和 Github Pages 上,前者迁移到腾讯云 Serverless,导致原有的配置始终有问题,没时间仔细研究,刚好腾讯服务器 ...

  10. Jenkins安装、配置与说明

    Jenkins是一个开源的.提供友好操作界面的持续集成(CI)工具,主要用于持续.自动的构建/测试软件项目.监控外部任务的运行. 这么解释很抽象,举个例子,我们开发完一个功能,我们要将项目发布打包好, ...