SSM框架(五):Maven进阶

文章目录

  • 一、分模块开发
    • 1.1 分模块开发的意义
    • 1.2 步骤
  • 二、依赖管理
    • 2.1 依赖传递
    • 2.2 可选依赖和排除依赖
  • 三、继承与聚合
    • 3.1 聚合
    • 3.2 继承
    • 3.3 聚合和继承区别
  • 四、属性
    • 4.1 pom文件的依赖使用属性
    • 4.2 资源文件使用属性
  • 五、多环境开发
  • 六、跳过测试
  • 七、私服
    • 7.1 下载与使用
    • 7.2 私服仓库分类
    • 7.3 私服的本地配置与上传文件
  • 八、案例演示


一、分模块开发

1.1 分模块开发的意义

在这里插入图片描述

1.2 步骤

  1. 首先将com.itheima.domain模块拆出来,建立一个新的模块maven_03
  2. 然后在maven_02中的pom文件中引入maven_03的依赖
  3. 将maven_03通过install打包成jar包
  4. 通过maven_02的compile进行编译校验
  5. 最后运行程序是否成功
    在这里插入图片描述

二、依赖管理

2.1 依赖传递

在这里插入图片描述
在这里插入图片描述

2.2 可选依赖和排除依赖

可选依赖是自己用的依赖可以设置为是否给其他人用,解释:这里的optional设置为true表示maven_03_pojo依赖只能自己用,不能被其他人用
在这里插入图片描述

排除依赖是不想用 引用的这个依赖 的下一级依赖,解释:exclusions表示不想用maven_04_dao下的log4j和mybatis依赖

在这里插入图片描述

三、继承与聚合

3.1 聚合

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 继承

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.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/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>maven_01_parent</artifactId><packaging>pom</packaging><version>1.0-SNAPSHOT</version><!-- 设置聚合工程的子模块:统一管理子模块--><modules><module>../maven_02_ssm</module><module>../maven_03_pojo</module></modules><!-- 父工程的依赖--><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.10.RELEASE</version></dependency></dependencies><!--    定义依赖管理: 子依赖可选择使用--><dependencyManagement><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></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/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>maven_02_ssm</artifactId><packaging>war</packaging><version>1.0-SNAPSHOT</version><name>maven_02_ssm Maven Webapp</name><url>http://maven.apache.org</url><!--  配置当前工程继承parent父工程--><parent><groupId>org.example</groupId><artifactId>maven_01_parent</artifactId><version>1.0-SNAPSHOT</version><!--  parent父工程pom文件的位置--><relativePath>../maven_01_parent/pom.xml</relativePath></parent><dependencies><dependency><groupId>org.example</groupId><artifactId>maven_03_pojo</artifactId><version>1.0-SNAPSHOT</version><!-- 设置可选依赖:true表示仅自己使用,其他人无法使用 --><optional>false</optional><!-- 设置排除依赖:表示不想使用maven_03_pojo依赖下的mybatis依赖 --><exclusions><exclusion><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId></exclusion></exclusions></dependency><!-- 继承父类的依赖,不用写版本号,父类已写好--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency></dependencies><build><finalName>maven_02_ssm</finalName><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version><configuration><port>80</port><path>/</path></configuration></plugin></plugins></build>
</project>

四、属性

在这里插入图片描述

在这里插入图片描述

4.1 pom文件的依赖使用属性

在这里插入图片描述
在这里插入图片描述

4.2 资源文件使用属性

这里使用pom.xml文件配置src/mian/resourses下的jdbc.properties文件的属性,即使用pom文件配置连接数据库需要的参数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、多环境开发

Maven提供配置多种环境的设定,帮助开发者使用过程中快速切换环境
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一定要注意:mvn 命令要在指定模块下运行,不然找不到环境
在这里插入图片描述

六、跳过测试

应用场景:功能未开发完、快速打包…
方式一:
在这里插入图片描述
方式二:
在这里插入图片描述
方式三:
在这里插入图片描述

七、私服

7.1 下载与使用

Nexus下载地址:https://help.sonatype.com/repomanager3/download
在这里插入图片描述

下载解压后会有nexus-3.30.1-01和sonatype-work文件夹,在nexus-3.30.1-01\bin目录下打开cmd输入指令nexus.exe /run nexus启动服务器
在这里插入图片描述

7.2 私服仓库分类

在这里插入图片描述

7.3 私服的本地配置与上传文件

第一步:建立两个maven2仓库,并且在maven-public里面将建好的两个仓库交给其管理,记得点击save保存

在这里插入图片描述
在这里插入图片描述

第二步:在本地的maven的setting.xml(apache-maven-3.3.9\conf下)文件中配置,访问私服的仓库的用户名和密码

在这里插入图片描述

同样在setting.xml中配置私服的地址,圈红部分改为maven-public

在这里插入图片描述

第三步:在父工程的pom文件中

在这里插入图片描述

最后,可以看到私有仓库itheima-release已经上传了文件

在这里插入图片描述

注意:可以修改pom.xml文件的version版本为release(发布版本)或snapshot(快照版本)格式,指定放在私服的哪个仓库中

在这里插入图片描述

其次:想要配置访问中央服务器的地址,这里可以改为阿里的

在这里插入图片描述

八、案例演示

父工程maven_01_parent

<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/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>maven_01_parent</artifactId><packaging>pom</packaging><version>1.0-SNAPSHOT</version><!-- 3.设置聚合工程的子模块:统一管理子模块--><modules><module>../maven_02_ssm</module><module>../maven_03_pojo</module></modules><!-- 4.父工程的依赖--><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><!--    9.使用属性  --><version>${Spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${Spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${Spring.version}</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.0</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.16</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.0</version></dependency></dependencies><!--    6.定义依赖管理: 子依赖可选择使用--><dependencyManagement><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency></dependencies></dependencyManagement><!--    8.定义属性  --><properties><Spring.version>5.2.10.RELEASE</Spring.version><junit.version>4.12</junit.version><jdbc.username>root</jdbc.username></properties><build><!--10.配置指定目录下的文件也能使用上面的属性--><resources><!--设置资源目录,并设置能够解析${}--><resource><!-- <directory>../maven_02_ssm/src/main/resources</directory>--><!-- <directory>../maven_03_pojo/src/main/resources</directory>--><!-- 上述可以简化成${project.basedir}--><directory>${project.basedir}/src/main/resources</directory><filtering>true</filtering><includes><include>**/*.properties</include><include>**/*.xml</include></includes></resource></resources><plugins><!--13.跳过测试--><plugin><artifactId>maven-surefire-plugin</artifactId><version>2.12.4</version><configuration><!--true表示跳过所有测试--><skipTests>false</skipTests><!--排除掉不参与测试的内容--><excludes><exclude>**/BookServiceTest.java</exclude></excludes></configuration></plugin></plugins></build><!--12.配置多环境--><profiles><!--开发环境--><profile><id>env_dep</id><properties><jdbc.url>jdbc:mysql://127.1.1.1:3306/ssm_db</jdbc.url></properties><!--设定是否为默认启动环境--><activation><activeByDefault>true</activeByDefault></activation></profile><!--生产环境--><profile><id>env_pro</id><properties><jdbc.url>jdbc:mysql://127.2.2.2:3306/ssm_db</jdbc.url></properties></profile><!--测试环境--><profile><id>env_test</id><properties><jdbc.url>jdbc:mysql://127.3.3.3:3306/ssm_db</jdbc.url></properties></profile></profiles><!--14.配置当前工程保存在私服中的具体位置--><distributionManagement><repository><id>itheima-Release</id><url>http://localhost:8081/repository/itheima-Release/</url></repository><snapshotRepository><id>itheima-Snapshot</id><url>http://localhost:8081/repository/itheima-Snapshot/</url></snapshotRepository></distributionManagement></project>

子工程maven_02_ssm

<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/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>maven_02_ssm</artifactId><packaging>war</packaging><version>1.0-SNAPSHOT</version><name>maven_02_ssm Maven Webapp</name><url>http://maven.apache.org</url><!-- 5. 配置当前工程继承parent父工程--><parent><groupId>org.example</groupId><artifactId>maven_01_parent</artifactId><version>1.0-SNAPSHOT</version><!--  parent父工程pom文件的位置--><relativePath>../maven_01_parent/pom.xml</relativePath></parent><dependencies><dependency><groupId>org.example</groupId><artifactId>maven_03_pojo</artifactId><version>1.0-SNAPSHOT</version><!-- 1.设置可选依赖:true表示仅自己使用,其他人无法使用 --><optional>false</optional><!-- 2.设置排除依赖:表示不想使用maven_03_pojo依赖下的mybatis依赖 --><exclusions><exclusion><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId></exclusion></exclusions></dependency><!-- 7.继承父类的依赖,不用写版本号,父类已写好--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency></dependencies><build><finalName>maven_02_ssm</finalName><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version><configuration><port>80</port><path>/</path></configuration></plugin><!--11.打包时忽略检查web.xml文件--><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><version>3.2.3</version><configuration><failOnMissingWebXml>false</failOnMissingWebXml></configuration></plugin></plugins></build>
</project>

子工程maven_03_pojo

<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/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>maven_03_pojo</artifactId><packaging>jar</packaging><version>1.0-RELEASE</version><name>maven_03_pojo Maven Webapp</name><url>http://maven.apache.org</url><!--  5.配置当前工程继承parent父工程--><parent><groupId>org.example</groupId><artifactId>maven_01_parent</artifactId><version>1.0-SNAPSHOT</version><relativePath>../maven_01_parent/pom.xml</relativePath></parent><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency></dependencies><build><finalName>maven_03_pojo</finalName></build>
</project>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/209111.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA2022 Git 回滚及回滚内容恢复

IDEA2022 Git 回滚 ①选择要回滚的地方&#xff0c;右键选择 ②选择要回滚的模式 ③开始回滚 ④soft模式回滚的内容会保留在暂存区 ⑤输入git push -f &#xff0c;然后重新提交&#xff0c;即可同步远程 注意观察IDEA右下角分支的标记&#xff0c;蓝色代表远程内容未同步到本…

Spring MVC学习随笔-控制器(Controller)开发详解:接受客户端(Client)请求参数

学习视频&#xff1a;孙哥说SpringMVC&#xff1a;结合Thymeleaf&#xff0c;重塑你的MVC世界&#xff01;&#xff5c;前所未有的Web开发探索之旅 第三章、SpringMVC控制器开发详解 3.1 核心要点 &#x1f4a1; 1. 接受客户端&#xff08;client&#xff09;请求参数[讲解] 2…

vue+less+style-resources-loader 配置全局颜色变量

全局统一样式后&#xff0c;可配置vue.config.js实现全局颜色变量&#xff0c;方便在编写时使用统一风格的色彩 一、新建global.less 二、下载安装style-resources-loader npm i style-resources-loader --save-dev三、在vue.config.js中进行配置 module.exports {pluginOpt…

二. BEV感知算法基础模块讲解

目录 前言0. 简述1. 基础模块补充讲解1.1 2D图像处理1.2 3D特征之点处理方案1.3 3D特征之体素处理方案 2. 从2D到3D转换模块2.1 LSS(Lift,Splat and Shoot)2.2 Pseudo LiDAR 3. 从3D到2D转换模块3.1 Explicit Mapping3.2 Implicit Mapping 4. BEV感知中的Transformer4.1 空间注…

正是阶段高等数学复习--函数极限的计算

之前在预备阶段中函数极限的解决方式分三步&#xff0c;第一步观察形式并确定用什么方式来解决&#xff0c;第二步化简&#xff0c;化简方式一共有7种&#xff0c;分别是最重要的三种&#xff08;等价替换、拆分极限存在的项、计算非零因子&#xff09;以及次重要的4种&#xf…

教你一招,轻松搭建dns域名服务器

目录 一、DNS简介二、安装DNS 一、DNS简介 域名系统&#xff08;DNS&#xff09;是一个分层的分布式数据库。它存储用于将Internet主机名映射到IP地址&#xff08;反之亦然&#xff09;的信息、邮件路由信息以及Internet应用程序使用的其他数据。 客户端通过调用解析器库在DNS…

高端制造业中的通用性超精密3D光学测量仪器

超精密光学3D测量仪器具有高精度、自动化程度高、实时反馈和范围广等优势。它能够实现微米级别的精确测量&#xff0c;能够精确测量产品的尺寸、形状和表面粗糙度等&#xff0c;具有广泛的应用价值和重要意义。 超精密光学3D测量仪器配备多种传感器、控制器和计算机系统&#…

Java(十)(网络编程,UDP,TCP)

目录 网络编程 两种软件架构 网络通信的三要素 IP IPv4的地址分类 特殊IP 端口号 协议 用UDP协议发送数据 用UDP接收数据 TCP接收和发送数据 TCP通信--支持与多个客户端同时通信 网络编程 可以让设备中的程序与网络上其他设备的程序进行数据交互(实现网络通信) 两…

go自定义端口监听停用-------解决端口被占用的问题

代码 package mainimport ("fmt""log""net""os/exec""strconv""strings" )func getSelect(beign int, end int) int {var num intfor {_, err : fmt.Scan(&num)if err ! nil {fmt.Println("输入错误&am…

redis实现消息延迟队列

业务场景 在很多软件系统功能中都会出现定时任务的业务场景,比如提前点单,比如定时发布动态,文章等而出现这样的的定时的任务为延迟队任务 代码模块 任务的持久化一般都需要建立一个任务表和任务日志表,避免宕机导致任务失效,先新建立一个数据库,创建基本的任务表和任务日志表…

字符串冲刺题

关卡名 字符串冲刺题 我会了✔️ 内容 1.掌握最长公共前缀问题 ✔️ 2.掌握字符串压缩问题 ✔️ 3.如果想挑战一下就研究&#xff1a;表示数值的字符串 ✔️ 1 最长公共前缀 这是一道经典的字符串问题&#xff0c;LeetCode14 先看题目要求&#xff1a;编写一个函数来查找…

28.线段树与树状数组基础

一、线段树 1.区间问题 线段树是一种在算法竞赛中常用来维护区间的数据结构。它思想非常简单&#xff0c;就是借助二叉树的结构进行分治&#xff0c;但它的功能却非常强大&#xff0c;因此在很多类型的题目中都有它的变种&#xff0c;很多题目都需要以线段树为基础进行发展。…

git报错invalid object xxx和unable to read tree xxxxxx

电脑出问题了&#xff0c;导致git仓库像是被损坏了一样&#xff0c;执行git status就会报错unable to read ree&#xff0c;无法正常提交代码至仓库&#xff0c;原因是本地代码仓库.git文件损坏了&#xff0c;无法找到正确的提交历史和路径。 找到了一个解决办法&#xff1a; …

数学字体 Mathematical fonts

Mathematical fonts 数学字体&#xff1a; ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzRQSZ \\ \mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzRQSZ} \\ \mathfrak{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzRQSZ} \\ \mathbb{ABC…

geemap学习笔记015:下载哨兵2号(Sentinel-2)数据

前言 使用GEE下载数据应该是最常见的功能了&#xff0c;今天就介绍一下如何使用geemap下载哨兵2号(Sentinel-2)数据&#xff0c;分别包括自己画感兴趣&#xff0c;以及利用Assets中的shp文件进行下载。 1 自己画感兴趣下载哨兵2号影像 import geemap import eeMap geemap.M…

MQ - 消息系统

消息系统 1、消息系统的演变 在大型系统中&#xff0c;会需要和很多子系统做交互&#xff0c;也需要消息传递&#xff0c;在诸如此类系统中&#xff0c;你会找到源系统&#xff08;消息发送方&#xff09;和 目的系统&#xff08;消息接收方&#xff09;。为了在这样的消息系…

了解ThreadLocal的原理吗

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一份大厂面试资料《史上最全大厂面试题》&#xff0c;Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

YOLOv5改进 | 添加ECA注意力机制 + 更换主干网络之ShuffleNetV2

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。本文给大家介绍一种轻量化部署改进方式&#xff0c;即在主干网络中添加ECA注意力机制和更换主干网络之ShuffleNetV2&#xff0c;希望大家学习之后&#xff0c;能够彻底理解其改进流程及方法~&#xff01;&#x1f308; 目…

解读Java虚拟机垃圾回收器:探究经典算法背后的奥秘

目录 一、GC分类与性能指标 &#xff08;一&#xff09;垃圾回收器分类 &#xff08;二&#xff09;性能指标 &#xff08;三&#xff09;不可能三角 二、不同的垃圾回收器概述 三、Serial回收器&#xff1a;串行回收 四、ParNew回收器&#xff1a;并行回收 五、Parall…

untiy webgl常见问题与操作

文章目录 1 untiy和网页相互通信2 打开新页面&#xff08;同标签页和新标签页&#xff09;3 获取网页的URL4 解析Url内的参数5 后处理与色彩空间问题 1 untiy和网页相互通信 看这个文章 2 打开新页面&#xff08;同标签页和新标签页&#xff09; 先看本文untiy和网页相互通信…