【JavaWeb學習Day23】

Maven高級

分模塊設計與開發

分模塊設計:將一個大項目分成若干個子模塊,方便項目的維護、擴展,也方便模塊間的相互引用,資源共享。

策略:

1.策略一:按照功能模塊拆分,比如:公共組件、商品模塊、搜索模塊、購物車模塊、訂單模塊等。

2.策略二:按層拆分,比如:公共組件、實體類、控制層、業務層、數據訪問層。

3.策略三:按照功能模塊+層拆分。

分模塊開發:

1.創建maven模塊tlias-pojo,存放實體類

2.創建maven模塊tlias-utils,存放相關工具類

(注意:分模塊開發需要先針對模塊功能進行設計,再進行編碼。不會先將工程開發完畢,然后再進行拆分)

繼承與聚合

繼承:

繼承關系:

概念:繼承描述的是兩個工程間的關系,與java中的繼承相似,子工程可以繼承父工程中的配置信息,常見于依賴關系的繼承。

作用:簡化依賴配置、統一管理依賴

實現:<parent>...</parent>

繼承關系實現:

1.創建maven模塊tlias-parent,該工程為父工程,設置打包方式為pom(默認jar)。

2.在子工程中的pom.xml文件中,配置繼承關系。

3.在父工程中配置各個工程共有的依賴(子工程會自動繼承父工程的依賴)。

(jar:普通模塊打包,springboot項目基本都是jar包(內嵌tomcat運行);war:普通web程序打包,需要部署在外部的tomcat服務器中運行;pom父工程或聚合工程,該模塊不寫代碼,僅僅進行依賴管理)

注意事項:

1.在子工程中,配置了繼承關系之后,坐標中的groupId是可以省略的,因為會自動繼承父工程的。

2.relativePath指定父工程的pom文件的相對位置(如果不指定,將從本地倉庫/遠程倉庫查找)。

3.若父子工程都配置了同一個依賴的不同版本,以子過程為準。

版本鎖定:

在maven中,可以在父工程的pom文件中通過<denpendencyManagemnet>來統一管理依賴版本。

自定義版本/引用屬性:

<denpendencyManagemnet>和<denpendencies>的區別:

<denpendencyManagemnet>是統一管理依賴版本,不會直接依賴,還需要再子工程中引入所需依賴,但無需指定版本

<denpendencies>是直接依賴,在父工程配置了依賴,子工程會直接繼承下來。

聚合:

聚合:將多個模塊組織成一個整體,同時進行項目的構建。

聚合工程:一個不具有業務功能的“空”工程(有且僅有一個pom文件)

作用:快速構建項目(無需根據依賴關系手動構建,直接在聚合工程上構建即可)

實現:maven中可以通過<modules>設置當前聚合工程所包含的子模塊名稱

(注意:聚合工程中包含的模塊,在構建時,會自動根據模塊間的依賴關系構建順序,與聚合工程中模塊的配置書寫位置無關)

maven中繼承和聚合的聯系和區別:

聯系:繼承和聚合都屬于設計模塊,打包方式都為pom,常將兩種關系制作到同一個pom文件中。

區別:1.繼承用于簡化依賴配置、統一管理依賴版本,是在子工程中配置繼承關系。2.聚合用于快速構建項目,是在父工程(聚合工程)中配置聚合的模塊。

私服

介紹:

私服是一種特殊的遠程倉庫,它是架設在局域網內的倉庫服務,用來代理位于外部的中央倉庫,用于解決團隊的資源共享與資源同步問題

依賴查找順序:本地倉庫,私服,中央倉庫

(注意:私服在企業項目開發中,一個項目/公司,只需要一臺即可,無需我們自己搭建,會使用即可)

資源上傳和下載:

項目版本:

RELEASE(發行版本):功能趨于穩定,當前更新停止,可以用于發行的版本,儲存在私服中的RELEASE倉庫中。

SNAPSHOT(快照版本):功能不穩定,尚處于開發中的版本,即快照版本,存儲在私服的SNAPSHOT倉庫中。

步驟:

私服準備好了之后,我們要做如下幾步配置:

1. 設置私服的訪問用戶名/密碼(在自己maven安裝目錄下的**conf/settings.xml中的servers中配置)**

<server><id>maven-releases</id><username>admin</username><password>admin</password>
</server><server><id>maven-snapshots</id><username>admin</username><password>admin</password>
</server>

2. 設置私服依賴下載的倉庫組地址(在自己maven安裝目錄下的**conf/settings.xml中的mirrors中配置)**

<mirror><id>maven-public</id><mirrorOf>*</mirrorOf><url>http://localhost:8081/repository/maven-public/</url>
</mirror>

3. 設置私服依賴下載的倉庫組地址(在自己maven安裝目錄下的**conf/settings.xml中的profiles中配置)**

<profile><id>allow-snapshots</id><activation><activeByDefault>true</activeByDefault></activation><repositories><repository><id>maven-public</id><url>http://localhost:8081/repository/maven-public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories>
</profile>

4. IDEA的maven工程的pom文件中配置上傳(發布)地址(直接在**tlias-parent中配置發布地址)**

<distributionManagement><!-- release版本的發布地址 --><repository><id>maven-releases</id><url>http://localhost:8081/repository/maven-releases/</url></repository><!-- snapshot版本的發布地址 --><snapshotRepository><id>maven-snapshots</id><url>http://localhost:8081/repository/maven-snapshots/</url></snapshotRepository>
</distributionManagement>

配置完成之后,我們就可以在tlias-parent中執行deploy生命周期,將項目發布到私服倉庫中。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/71896.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/71896.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/71896.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

圖像的特征

圖像的特征主要包括以下幾類&#xff1a; 1. 顏色特征&#xff1a; 直方圖&#xff1a;描述圖像中顏色的分布。 顏色矩&#xff1a;通過顏色的均值、方差等統計量表示顏色分布。 主色調&#xff1a;圖像中占主導地位的顏色。 2. 紋理特征&#xff1a; 灰度共生矩陣&#xff0…

?LeetCode周賽 3468. 可行數組的數目——暴力與數學?

?LeetCode周賽 3468. 可行數組的數目——暴力與數學? 示例 1&#xff1a; 輸入&#xff1a;original [1,2,3,4], bounds [[1,2],[2,3],[3,4],[4,5]] 輸出&#xff1a;2 解釋&#xff1a; 可能的數組為&#xff1a; [1, 2, 3, 4] [2, 3, 4, 5] 示例 2&#xff1a; 輸入&…

AF3 squeeze_features函數解讀

AlphaFold3 data_transforms 模塊的 squeeze_features 函數的作用去除 蛋白質特征張量中不必要的單維度&#xff08;singleton dimensions&#xff09;和重復維度&#xff0c;以使其適配 AlphaFold3 預期的輸入格式。 源代碼&#xff1a; def squeeze_features(protein):&qu…

【打卡d4】日期類--分組輸入

第一題&#xff1a;根據一年中的第 n 天計算日期 &#x1f4cc; 知識點 判斷閏年&#xff1a; 閏年條件&#xff1a;能被 400 整除&#xff0c;或 能被 4 整除但不能被 100 整除。平年&#xff1a;2 月 28 天&#xff1b;閏年&#xff1a;2 月 29 天。 累加月份&#xff0c;找…

JAVA(5)-基礎概念

*固定格式 一.注釋和關鍵字 關鍵字&#xff1a;被賦予特定關系的詞 字母全部小寫&#xff0c;如class表示一個類 二.字面量 1.字面量類型 *字符串里面的類型是一句話&#xff0c;用雙引號 字符里面的類型只有一個字或字母 null只能用字符串的方式打印 2.制表符 \t 至少補…

本地部署Navidrome個人云音樂平臺隨時隨地暢聽本地音樂文件

文章目錄 前言1. 安裝Docker2. 創建并啟動Navidrome容器3. 公網遠程訪問本地Navidrome3.1 內網穿透工具安裝3.2 創建遠程連接公網地址3.3 使用固定公網地址遠程訪問 前言 今天我要給大家安利一個超酷的私有化音樂神器——Navidrome&#xff01;它不僅讓你隨時隨地暢享本地音樂…

C++ 中的RAII(資源獲取及初始化)

C 中的RAII(資源獲取即初始化) RAII&#xff08;Resource Acquisition Is Initialization&#xff09;是C中一種重要的編程范式&#xff0c;全稱為“資源獲取即初始化”。它是一種通過對象生命周期管理資源&#xff08;如內存、文件句柄、網絡連接等&#xff09;的技術&#x…

藍橋杯嵌入式組第七屆省賽題目解析+STM32G431RBT6實現源碼

文章目錄 1.題目解析1.1 分而治之&#xff0c;藕斷絲連1.2 模塊化思維導圖1.3 模塊解析1.3.1 KEY模塊1.3.2 ADC模塊1.3.3 IIC模塊1.3.4 UART模塊1.3.5 LCD模塊1.3.6 LED模塊1.3.7 TIM模塊 2.源碼3.第七屆題目 前言&#xff1a;STM32G431RBT6實現嵌入式組第七屆題目解析源碼&…

DeepSeek技術名詞全解析:一場屬于中國AI的“覺醒時刻”

在2025年的人工智能浪潮中&#xff0c;一個名為DeepSeek的中國團隊&#xff0c;用一系列技術突破改寫了全球AI競爭的敘事。從“頓悟時刻”到“群體策略優化”&#xff0c;從“冷啟動”到“長鏈思考”&#xff0c;這些晦澀的技術術語背后&#xff0c;是一場關乎人類智能邊界的革…

【Go語言圣經1.1】

目標 學習Go 的編譯方式、包的組織方式以及工具鏈的統一調用方式 概念與定義 package Go 語言通過包來組織代碼。包類似于其它語言的庫librarries或模塊modules&#xff0c;每個包通常對應一個目錄&#xff0c;目錄中的所有 .go 文件都屬于同一個包。特殊的 main 包 : 當代碼…

主流大語言模型中Token的生成過程本質是串行的

主流大語言模型中Token的生成過程本質是串行的 flyfish 1. 串行生成 自回歸模型的核心邏輯&#xff1a; 大模型&#xff08;如GPT-2&#xff09;采用自回歸架構&#xff0c;每個Token的生成必須基于已生成的完整歷史序列。例如&#xff0c;生成“今天天氣很好”時&#xff1a…

基于PySide6的CATIA零件自動化著色工具開發實踐

引言 在汽車及航空制造領域&#xff0c;CATIA作為核心的CAD設計軟件&#xff0c;其二次開發能力對提升設計效率具有重要意義。本文介紹一種基于Python的CATIA零件著色工具開發方案&#xff0c;通過PySide6實現GUI交互&#xff0c;結合COM接口操作實現零件著色自動化。該方案成…

Python——計算機網絡

一.ip 1.ip的定義 IP是“Internet Protocol”的縮寫&#xff0c;即“互聯網協議”。它是用于計算機網絡通信的基礎協議之一&#xff0c;屬于TCP/IP協議族中的網絡層協議。IP協議的主要功能是負責將數據包從源主機傳輸到目標主機&#xff0c;并確保數據能夠在復雜的網絡環境中正…

Python實例:PyMuPDF實現PDF翻譯,英文翻譯為中文,并按段落創建中文PDF

基于PyMuPDF與百度翻譯的PDF翻譯處理系統開發:中文亂碼解決方案與自動化排版實踐 一 、功能預覽:將英文翻譯為中文后創建的PDF 二、完整代碼 from reportlab.lib.pagesizes import letter from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle

xunruicms失敗次數已達到5次,已被禁止登錄怎么處理?

針對遇到的“xunruicms失敗次數已達到5次&#xff0c;已被禁止登錄”的問題以下是幾種處理方法&#xff1a; 開啟開發者模式&#xff1a; 您可以開啟開發者模式來忽略賬號的禁止登錄限制。具體操作步驟如下&#xff1a; 訪問迅睿CMS的官方文檔&#xff0c;找到如何開啟開發者模…

復現 MODEST 機器人抓取透明物體 單目 ICRA 2025

MODEST 單目透明物體抓取算法&#xff0c;來自ICRA 2025&#xff0c;本文分享它的復現過程。 輸入單個視角的RGB圖像&#xff0c;模型需要同時處理深度和分割任務&#xff0c;輸出透明物體的分割結果和場景深度預測。 論文地址&#xff1a;Monocular Depth Estimation and Se…

新手學習爬蟲的案例

首先你的電腦上肯定已經安裝了python,沒安裝的去官網安裝,我使用的是Pycharm作為操作的IDE 環境準備 安裝必要的庫 爬蟲需要用到requests和beautifulsoup4 使用命令行或者終端運行下面的命令 pip install requests beautifulsoup4 -i https://mirrors.aliyun.com/pypi/sim…

Octave3D 關卡設計插件

課程參考鏈接 這位大佬有在視頻合集中有詳細的講解&#xff0c;個人體驗過&#xff0c;感覺功能很強大 https://www.bilibili.com/video/BV1Kq4y1C72P/?share_sourcecopy_web&vd_source0a41d8122353e3e841ae0a39908c2181 Prefab資源管理 第一步 在場景中創建一個空物體…

【Transformer優化】Transformer的局限在哪?

自2017年Transformer橫空出世以來&#xff0c;它幾乎重寫了自然語言處理的規則。但當我們在享受其驚人的并行計算能力和表征能力時&#xff0c;是否真正理解了它的局限性&#xff1f;本文將深入探討在復雜度之外被忽視的五大核心缺陷&#xff0c;并試圖在數學維度揭示其本質。 …

SpringBoot(一)--搭建架構5種方法

目錄 一、?Idea從spring官網下載打開 2021版本idea 1.打開創建項目 2.修改pom.xml文件里的版本號 2017版本idea 二、從spring官網下載再用idea打開 三、Idea從阿里云的官網下載打開 ?編輯 四、Maven項目改造成springboot項目 五、從阿里云官網下載再用idea打開 Spri…