当前位置: 首页 > news >正文

个人网站免费推广福田区建设局网站

个人网站免费推广,福田区建设局网站,网站运营建设,毕节公司做网站文章目录Maven高级一、分模块设计(1)概念(2)作用二、继承与聚合(1)继承1.继承关系2.版本锁定3.三种打包方式(2)聚合(3)继承与聚合三、私服(1)介绍(2)资源上传和下载1.配置上传:2.配置下载Maven高级 一、分模块设计 (1)概念 将项目按照功能分成若干个子模块&#…

文章目录

  • Maven高级
  • 一、分模块设计
    • (1)概念
    • (2)作用
  • 二、继承与聚合
    • (1)继承
      • 1.继承关系
      • 2.版本锁定
      • 3.三种打包方式
    • (2)聚合
    • (3)继承与聚合
  • 三、私服
    • (1)介绍
    • (2)资源上传和下载
      • 1.配置上传:
      • 2.配置下载

Maven高级

一、分模块设计

(1)概念

将项目按照功能分成若干个子模块,这样的设计就叫做分模块设计。

如下图:

1.创建maven模块 tallias-pojo,存放实体类。

2.创建maven模块 talias-utils,存放相关工具类。

在这里插入图片描述

或者:
在这里插入图片描述

注意事项:

  • 分模块开发需要先针对模块功能进行设计,再进行编码。不会先将工程开发完毕,然后进行拆分。

(2)作用

方便项目的管理维护、扩展,也方便模块间的互相调用,资源共享。

二、继承与聚合

(1)继承

1.继承关系

  • 概念:继承描述的是两个工程间的关系,与 java 中的继承相似,子工程可以继承父工程中的配置信息,常见于依赖关系的继承。
  • 作用:简化依赖配置、统一管理依赖
  • 实现:<parent></parent>

在这里插入图片描述

继承的案例

目标:我们需要达到如下图的一个继承关系,其中各个子工程都需要一个叫Lombok的包:

在这里插入图片描述

一共需要三步:

①创建 maven 模块 tlias - parent,该工程为父工程,设置打包方式为 pom (默认打包方式为 jar)。

②在子工程的 pom.xml 文件中,配置继承关系。

③在父工程中配置各个工程共有的依赖Lombok(子工程会自动继承父工程的依赖)。

步骤:

①创建父包->tlias-parent

父包的pom文件配置如下:

 <!-- 1.设置继承的父包 -->
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.5</version><relativePath/>
</parent><groupId>com.test</groupId>
<artifactId>tlias-parent</artifactId>
<version>1.0-SNAPSHOT</version><!-- 2.设置打包方式 -->
<packaging>pom</packaging>

②创建子包

各个子包的的pom文件配置如下:

<groupId>com.test</groupId><!-- 可省略 -->
<artifactId>tlias-pojo</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 1.设置继承的父包 -->
<parent><groupId>com.test</groupId><artifactId>tlias-parent</artifactId><version>1.0-SNAPSHOT</version><relativePath>../tlias-parent/pom.xml</relativePath>
</parent>

注意事项:

  1. 在子工程中,配置了继承关系之后,坐标中的groupId是可以省略的,因为会自动继承父工程的。
  2. relativePath指定父工程的pom文件的相对位置(如果不指定,将从本地仓库/远程仓库查找该工程)。

③在父工程中配置各个工程共有的依赖

(假设每一个子工程都需要一个叫Lombok的包)

<dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.24</version></dependency>
</dependencies>

注意事项:

  • 若父子工程都配置了同一个依赖的不同版本,以子工程的为准

2.版本锁定

①标签<dependencyManagement>

​ 在上面讲的继承的时候,我们知道了父工程中会将大部分的公用依赖都包含,这个时候父工程中依赖会有很多,而依赖中经常会发生变化的就是【版本号】,对于依赖版本的管理我们就有了标签<dependencyManagement>

该标签只负责管理版本号,不会实际引入依赖。

在这里插入图片描述

注意事项:

<dependencyManagement><dependencies>的区别是什么?

  • <dependencies> 是直接依赖,在父工程配置了依赖,子工程会直接继承下来。
  • <dependencyManagement> 是统一管理依赖版本,不会直接依赖,还需要在子工程中引入所需依赖(无需指定版本)
  • 子工程引入依赖的时候,无需指定<version>版本号,父工程统一管理,变更依赖版本,只需再父工程中统一变更

②标签<properties>

但是如果只是这样,当依赖过多的时候,依旧是不方便查找版本号

于时就可以使用自定义属性/引用属性:<properties>

在父工程的pom文件中:

在这里插入图片描述

3.三种打包方式

在pom文件中,我们可以设置

maven中有三种打包方式:

①jar:普通模块打包,springboot 项目基本都是 jar 包(内嵌 tomcat 运行)
②war:普通 web 程序打包,需要部署在外部的 tomcat 服务器中运行
③pom:父工程或聚合工程,该模块不写代码,仅进行依赖管理

(2)聚合

​ 在 Maven 中,“聚合”(Aggregation)是一种管理多模块项目的机制,用于将多个独立的 Maven 模块(Module)组织成一个统一的项目结构,实现 “一键构建所有模块” 的效果。它解决了多模块项目中需要逐个构建模块的繁琐问题,让项目管理更高效。

父项目是一个特殊的 Maven 项目,其作用仅为 “管理子模块”,自身不包含业务代码。

maven中可以通过<modules>设置当前聚合工程所包含的子模块名称。

<modules><module>../talias-pojo</module><module>../talias-utils</module><module>../talias-web-management</module>
</modules>

在这里插入图片描述

注意事项:

  • 聚合工程中所包含的模块,在构建时,会自动根据模块间的依赖关系设置构建顺序,与聚合工程中模块的配置书写位置无关。

(3)继承与聚合

  • 作用
    • 聚合用于快速构建项目
    • 继承用于简化依赖配置、统一管理依赖
  • 相同点:
    • 聚合与继承的 pom.xml 文件打包方式均为 pom,可以将两种关系制作到同一个 pom 文件中
    • 聚合与继承均属于设计型模块,并无实际的模块内容
  • 不同点:
    • 聚合是在聚合工程中配置关系,聚合可以感知到参与聚合的模块有哪些
    • 继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己

实际开发中,两者通常结合使用:父项目既作为聚合的管理者(通过 modules),又作为配置的提供者(供子模块继承)。

三、私服

(1)介绍

​ 私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,用来代理位于外部的中央仓库,用于解决团队内部的资源共享与资源同步问题。

​ 依赖的查找顺序:本地仓库–>私服–>中央仓库

在这里插入图片描述

注意事项:

  • 私服在企业项目开发中,一个项目 / 公司,只需要一台即可(无需我们自己搭建,会使用即可)。

(2)资源上传和下载

在这里插入图片描述

central是从中央仓库中下载的

在这里插入图片描述

配置上传和下载都需要对maven的setting文件进行操作

其中,下载只需要在setting中配置,而上传还需要再maven工程的pom文件中配置

1.配置上传:

配置 Maven 私服的核心目标是实现项目构建产物的上传与依赖的统一管理

使用私服上传,需要在maven的setting.xml配置文件中,做出如下配置:

①setting.xml

  1. 设置私服的访问用户名 / 密码(settings.xml 中的 servers标签 中配置)
  • server标签添加 访问nexus的账号和密码
<server><id>maven-releases</id><username>admin</username><password>123</password>
</server><server><id>maven-snapshots</id><username>admin</username><password>123</password>
</server>

id标签可以自定义,但是必须和maven工程中的distributionManagement标签的id保持一致,建议按照库名设置

②pom.xml:

1.IDEA的maven工程的pom文件配置上传(发布)地址

<distributionManagement><!-- release版本 --><repository><id>maven-releases</id><url>http://192.168.150.101:8081/repository/maven-releases/</url></repository><!-- snapshot版本 --><snapshotRepository><id>maven-snapshots</id><url>http://192.168.150.101:8081/repository/maven-snapshots/</url></snapshotRepository>
</distributionManagement>

2.发布项目,直接运行deploy生命周期即可(发布时,建议跳过单元测试)

发布的项目会上传到私服,不同版本的项目上传到不同的私服上。

执行 deploy 时:

  • Maven 会读取 POM 文件中的 <distributionManagement> 配置,判断项目是 release 版本还是 snapshot 版本,然后根据版本类型将对应的构建产物上传到相应的仓库。
  • 若 POM 文件中的仓库 <id>settings.xml<server><id> 匹配,Maven 就能获取到正确的用户名和密码进行认证,从而成功上传 JAR 包到私服。

2.配置下载

设置私服依赖下载的仓库组地址(settings.xml 中的 mirrors、profiles 中配置)

①setting.xml

  1. mirros标签设置访问路径,并设置id。(如果之前配置过阿里云需要删除)
  • mirros标签添加 访问nexus的路径配置
<mirror><id>maven-public</id><mirrorOf>*</mirrorOf><url>http://192.168.150.101:8081/repository/maven-public/</url>
</mirror>

这里url选择的是【仓库组】:将多个仓库放入一个组,这样就无需指定多个仓库

注意事项:

如果该仓库不允许匿名访问,需要认证才能下载,则还需要如下操作:

【配置账号密码】就是使用server标签,id和mirror的id保持一致即可:

<server><id>maven-public</id><username>admin</username><password>123</password>
</server>
  1. pofiles标签中,增加如下配置:
<profile><id>allow-snapshots</id><activation><activeByDefault>true</activeByDefault></activation><repositories><repository><id>maven-public</id><url>http://192.168.150.101:8081/repository/maven-public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories>
</profile>

②pom.xml(可选)

如果setting中没有配置【pofiles标签】,那就需要进行这一步:

    <repositories><repository><id>maven-public</id><url>http://192.168.150.101:8081/repository/maven-public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories>
http://www.dtcms.com/a/417671.html

相关文章:

  • 怎么建设淘宝客网站龙岩天宫山有开放吗
  • python 快速做网站中国核工业华兴建设有限公司网站
  • 网站开发融资计划wordpress 过时
  • 长沙建站长沙网站响应式制作网站建设
  • wordpress做社区网站网站开发能封装成app吗
  • 做下载类型网站怎样划算dw2021网页设计教程
  • 做的好的家装网站seo优化的技巧
  • 宠物网站开发文档音乐网站手机模板
  • 网站建设对接视频如何建立公司网站链接
  • 哈尔滨做网站哈尔滨学院企业主页怎么做
  • 打开手机网站速度慢购买域名的网站
  • 中国免费网站服务器2020网络商城的推广方法
  • 绿韵建设有限公司网站网页设计与制作黑马程序员
  • 网站代码检查找人做效果土去那网站找
  • 不用代码可以做网站设计吗欧美风格网站模版
  • 天津做无痛人流费用五洲网站五金设备网站建设
  • 杭州建设职业技术学院招聘信息网站怎样做化妆品网站
  • 怎么用动图做网站背景做国外网站需要多少钱
  • 体育直播网站源码wordpress托管 安装
  • 做全景图的网站上海网站建设建站
  • 做网站有哪些程序wordpress建好站了打不开首页
  • 个人网站备案幕布网站推广培训
  • 地方门户网站如何盈利找人做个网站多少钱
  • 商城网站结算页面怎么做广东网站设计
  • 网站建设费用应该入什么科目合肥专业做网站的公司有哪些
  • 域名 网站 区别win8网站设计
  • 阿里云虚拟机怎么做多个网站二手房
  • 企业网站建设的经费预算安徽六安发现一例新冠阳性检测者
  • 保定网站制作排名需要多少钱建设工程规范下载网站
  • 江苏省住房城乡建设部网站semcms外贸网站管理系统