【Maven】基于IDEA學習 Maven依賴 與 工程繼承、聚合關系

文章目錄

  • 一、基于IDEA 進行Maven依賴管理
    • 1. 依賴管理概念
    • 2. Maven工程核心信息配置和解讀(GAVP)
    • 3. Maven工程依賴管理配置
      • 依賴管理和依賴添加
      • 依賴版本統一提取和維護
    • 4. 依賴范圍
    • 5. Maven工程依賴下載失敗錯誤解決
    • 6. Maven工程Build構建配置
      • 指定打包命名
      • 指定打包文件
      • 配置依賴插件
  • 二、Maven依賴傳遞和依賴沖突
    • 1. Maven依賴傳遞特性
    • 2. Maven依賴沖突特性
  • 三、Maven工程繼承和聚合關系
    • 1. 繼承關系
      • 繼承概念
      • 繼承作用
      • 繼承語法
    • 2. 聚合關系
      • 聚合概念:
      • 聚合作用

一、基于IDEA 進行Maven依賴管理

1. 依賴管理概念

Maven 的依賴管理是 Maven 軟件的一個核心功能之一,能夠幫助開發人員自動解決軟件包依賴問題,簡化了開發過程中的工作,避免出現版本沖突和依賴缺失等問題。
通過定義 POM 文件,Maven 能夠自動解析項目的依賴關系,并通過 Maven 倉庫自動下載和管理依賴,從而避免了手動下載和管理依賴的繁瑣工作和可能引發的版本沖突問題。

2. Maven工程核心信息配置和解讀(GAVP)

<!-- 模型版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 公司或者組織的唯一標志,并且配置時生成的路徑也是由此生成, 如com.companyname.project-group,maven會將該項目打成的jar包放本地路徑:/com/companyname/project-group -->
<groupId>com.companyname.project-group</groupId>
<!-- 項目的唯一ID,一個groupId下面可能多個項目,就是靠artifactId來區分的 -->
<artifactId>project</artifactId>
<!-- 版本號 -->
<version>1.0.0</version><!--打包方式默認:jarjar指的是普通的java項目打包方式! 項目打成jar包!war指的是web項目打包方式!項目打成war包!pom不會講項目打包!這個項目作為父工程,被其他工程聚合或者繼承!后面會講解兩個概念
-->
<packaging>jar/pom/war</packaging>

3. Maven工程依賴管理配置

依賴管理和依賴添加

<!-- 通過編寫依賴jar包的gav必要屬性,引入第三方依賴!scope屬性是可選的,可以指定依賴生效范圍!依賴信息查詢方式:1. maven倉庫信息官網 https://mvnrepository.com/2. mavensearch插件搜索-->
<dependencies><!-- 引入具體的依賴包 --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version><!-- 依賴范圍 --><scope>runtime</scope></dependency></dependencies>

依賴版本統一提取和維護

<!--聲明版本-->
<properties><!--命名隨便,內部制定版本號即可!--><junit.version>4.12</junit.version><!-- 也可以通過 maven規定的固定的key,配置maven的參數!如下配置編碼格式!--><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><!--引用properties聲明版本 --><version>${junit.version}</version></dependency>
</dependencies>

4. 依賴范圍

通過設置坐標的依賴范圍(scope),可以設置 對應jar包的作用范圍:編譯環境、測試環境、運行環境

依賴范圍描述
compile編譯依賴范圍,scope 元素的缺省值。使用此依賴范圍的 Maven 依賴,對于三種 classpath 均有效,即該 Maven 依賴在上述三種 classpath 均會被引入。例如,log4j 在編譯、測試、運行過程都是必須的。
test測試依賴范圍。使用此依賴范圍的 Maven 依賴,只對測試 classpath 有效。例如,Junit 依賴只有在測試階段才需要。
provided已提供依賴范圍。使用此依賴范圍的 Maven 依賴,只對編譯 classpath 和測試 classpath 有效。例如,servlet-api 依賴對于編譯、測試階段而言是需要的,但是運行階段,由于外部容器已經提供,故不需要 Maven 重復引入該依賴。
runtime運行時依賴范圍。使用此依賴范圍的 Maven 依賴,只對測試 classpath、運行 classpath 有效。例如,JDBC 驅動實現依賴,其在編譯時只需 JDK 提供的 JDBC 接口即可,只有測試、運行階段才需要實現了 JDBC 接口的驅動。
system系統依賴范圍,其效果與 provided 的依賴范圍一致。其用于添加非 Maven 倉庫的本地依賴,通過依賴元素 dependency 中的 systemPath 元素指定本地依賴的路徑。鑒于使用其會導致項目的可移植性降低,一般不推薦使用。
import導入依賴范圍,該依賴范圍只能與 dependencyManagement 元素配合使用,其功能是將目標 pom.xml 文件中 dependencyManagement 的配置導入合并到當前 pom.xml 的 dependencyManagement 中。

5. Maven工程依賴下載失敗錯誤解決

在使用 Maven 構建項目時,可能會發生依賴項下載錯誤的情況,解決方案:

  1. 檢查網絡連接和 Maven 倉庫服務器狀態。

  2. 確保依賴項的版本號與項目對應的版本號匹配,并檢查 POM 文件中的依賴項是否正確。

  3. 清除本地 Maven 倉庫緩存(lastUpdated 文件),因為只要存在lastupdated緩存文件,刷新也不會重新下載。本地倉庫中,根據依賴的gav屬性依次向下查找文件夾,最終刪除內部的文件,刷新重新下載即可!

    例如: pom.xml依賴

    <dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.8</version>
    </dependency>
    

在這里插入圖片描述

或者可以將清除lastUpdated文件的操作寫在一個腳本文件中,手動創建文件"clearLastUpdated.bat",名字任意,但是后綴必須是bat,將以下內容復制到文件中

cls 
@ECHO OFF 
SET CLEAR_PATH=D: 
SET CLEAR_DIR=D:\maven-repository(本地倉庫路徑)
color 0a 
TITLE ClearLastUpdated For Windows 
GOTO MENU 
:MENU 
CLS
ECHO. 
ECHO. * * * *  ClearLastUpdated For Windows  * * * * 
ECHO. * * 
ECHO. * 1 清理*.lastUpdated * 
ECHO. * * 
ECHO. * 2 查看*.lastUpdated * 
ECHO. * * 
ECHO. * 3 退 出 * 
ECHO. * * 
ECHO. * * * * * * * * * * * * * * * * * * * * * * * * 
ECHO. 
ECHO.請輸入選擇項目的序號: 
set /p ID= 
IF "%id%"=="1" GOTO cmd1 
IF "%id%"=="2" GOTO cmd2 
IF "%id%"=="3" EXIT 
PAUSE 
:cmd1 
ECHO. 開始清理
%CLEAR_PATH%
cd %CLEAR_DIR%
for /r %%i in (*.lastUpdated) do del %%i
ECHO.OK 
PAUSE 
GOTO MENU 
:cmd2 
ECHO. 查看*.lastUpdated文件
%CLEAR_PATH%
cd %CLEAR_DIR%
for /r %%i in (*.lastUpdated) do echo %%i
ECHO.OK 
PAUSE 
GOTO MENU 

在這里插入圖片描述

6. Maven工程Build構建配置

項目構建是指將源代碼、依賴庫和資源文件等轉換成可執行或可部署的應用程序的過程,包括編譯源代碼、鏈接依賴庫、打包和部署等多個步驟。
我們可以在pom.xml定制一些配置,來修改默認構建【在pom.xml / build標簽中指定】的行為和產物!

指定打包命名

<!-- 默認的打包名稱:artifactid+verson.打包方式 -->
<build><finalName>定義打包名稱</finalName>
</build>  

指定打包文件

  • 在java文件夾中添加java類,會自動打包編譯到classes文件夾下
  • 在java文件夾中添加xml文件,默認不會被打包
  • 默認情況下,按照maven工程結構放置的文件會默認被編譯和打包

除此之外、我們可以使用resources標簽,指定要打包資源的文件夾要把哪些靜態資源打包到 classes根目錄下!
例如:不被打包

<build><!--設置要打包的資源位置--><resources><resource><!--設置資源所在目錄--><directory>src/main/java</directory><includes><!--設置包含的資源類型--><include>**/*.xml</include></includes></resource></resources>
</build>

配置依賴插件

dependencies標簽下引入開發需要的jar包!我們可以在build/plugins/plugin標簽引入插件!

常用的插件:修改jdk版本、tomcat插件、mybatis分頁插件、mybatis逆向工程插件等等!

<build><plugins><!-- java編譯插件,配jdk的編譯版本 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><!-- tomcat插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><port>8090</port><path>/</path><uriEncoding>UTF-8</uriEncoding><server>tomcat7</server></configuration></plugin></plugins>
</build>

二、Maven依賴傳遞和依賴沖突

1. Maven依賴傳遞特性

概念

假如有Maven項目A,項目B依賴A,項目C依賴B。那么我們可以說 C依賴A。也就是說,依賴的關系為:C—>B—>A, 那么我們執行項目C時,會自動把B、A都下載導入到C項目的jar包文件夾中,這就是依賴的傳遞性。

作用

  • 簡化依賴導入過程
  • 確保依賴版本正確

傳遞的原則

在 A 依賴 B,B 依賴 C 的前提下,C 是否能夠傳遞到 A,取決于 B 依賴 C 時使用的依賴范圍以及配置

  • B 依賴 C 時使用 compile 范圍:可以傳遞

  • B 依賴 C 時使用 test 或 provided 范圍:不能傳遞,所以需要這樣的 jar 包時,就必須在需要的地方明確配置依賴才可以。

  • B 依賴 C 時,若配置了以下標簽,則不能傳遞

    <dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.15</version><optional>true</optional>
    </dependency>
    

依賴傳遞終止

  • 非compile范圍進行依賴傳遞
  • 使用optional配置終止傳遞
  • 依賴沖突(傳遞的依賴已經存在)

2. Maven依賴沖突特性

當直接引用或者間接引用出現了相同的jar包! 這時呢,一個項目就會出現相同的重復jar包,這就算作沖突!依賴沖突避免出現重復依賴,并且終止依賴傳遞!

在這里插入圖片描述

maven自動解決依賴沖突問題能力,會按照自己的原則,進行重復依賴選擇。

解決依賴沖突(如何選擇重復依賴)方式:

  1. 自動選擇原則
    • 短路優先原則(第一原則)

      A—>B—>C—>D—>E—>X(version 0.0.1)

      A—>F—>X(version 0.0.2)

      則A依賴于X(version 0.0.2)。

    • 依賴路徑長度相同情況下,則“先聲明優先”(第二原則)

      A—>E—>X(version 0.0.1)

      A—>F—>X(version 0.0.2)

      在<depencies></depencies>中,先聲明的,路徑相同,會優先選擇!

  2. 手動排除
    <dependency><groupId>com.atguigu.maven</groupId><artifactId>pro01-maven-java</artifactId><version>1.0-SNAPSHOT</version><scope>compile</scope><!-- 使用excludes標簽配置依賴的排除  --><exclusions><!-- 在exclude標簽中配置一個具體的排除 --><exclusion><!-- 指定要排除的依賴的坐標(不需要寫version) --><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions>
    </dependency>
    

三、Maven工程繼承和聚合關系

1. 繼承關系

繼承概念

在 Maven 的項目中,讓一個項目從另一個項目中繼承配置信息的機制。可以讓我們在多個項目中共享同一配置信息,簡化項目的管理和維護工作。

繼承作用

繼承作用在父工程中統一管理項目中的依賴信息。
它的背景是:

  • 對一個比較大型的項目進行了模塊拆分。
  • 一個 project 下面,創建了很多個 module。
  • 每一個 module 都需要配置自己的依賴信息。

繼承語法

父工程

		  <groupId>com.atguigu.maven</groupId><artifactId>pro03-maven-parent</artifactId><version>1.0-SNAPSHOT</version><!-- 當前工程作為父工程,它要去管理子工程,所以打包方式必須是 pom --><packaging>pom</packaging>

子工程

<!-- 使用parent標簽指定當前工程的父工程 -->
<parent><!-- 父工程的坐標 --><groupId>com.atguigu.maven</groupId><artifactId>pro03-maven-parent</artifactId><version>1.0-SNAPSHOT</version>
</parent><!-- 子工程的坐標 -->
<!-- 如果子工程坐標中的groupId和version與父工程一致,那么可以省略 -->
<artifactId>pro04-maven-module</artifactId>

父工程依賴統一管理
父工程聲明版本

<!-- 使用dependencyManagement標簽配置對依賴的管理 -->
<!-- 被管理的依賴并沒有真正被引入到工程 -->
<dependencyManagement><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>6.0.10</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>6.0.10</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>6.0.10</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>6.0.10</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>6.0.10</version></dependency></dependencies>
</dependencyManagement>

子工程引用版本

<!-- 子工程引用父工程中的依賴信息時,可以把版本號去掉。  -->
<!-- 把版本號去掉就表示子工程中這個依賴的版本由父工程決定。 -->
<!-- 具體來說是由父工程的dependencyManagement來決定。 -->
<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId></dependency>
</dependencies>

2. 聚合關系

聚合概念:

Maven 聚合是指將多個項目組織到一個父級項目中,以便一起構建和管理的機制。可以幫助我們更好地管理一組相關的子項目,同時簡化它們的構建和部署過程。

聚合作用

  1. 管理多個子項目:通過聚合,可以將多個子項目組織在一起,方便管理和維護。
  2. 構建和發布一組相關的項目:通過聚合,可以在一個命令中構建和發布多個相關的項目,簡化了部署和維護工作。
  3. 優化構建順序:通過聚合,可以對多個項目進行順序控制,避免出現構建依賴混亂導致構建失敗的情況。
  4. 統一管理依賴項:通過聚合,可以在父項目中管理公共依賴項和插件,避免重復定義。
  5. 聚合語法父項目中包含的子項目列表。
<project><groupId>com.example</groupId><artifactId>parent-project</artifactId><packaging>pom</packaging><version>1.0.0</version><modules><module>child-project1</module><module>child-project2</module></modules>
</project>
  1. 聚合演示通過觸發父工程構建命令、引發所有子模塊構建!產生反應堆!

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

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

相關文章

微信小程序注冊組件

在微信小程序中注冊組件分為自定義組件的創建和全局/局部注冊&#xff0c;下面為你詳細介紹具體步驟和示例。 自定義組件的創建 自定義組件由四個文件組成&#xff0c;分別是 .js&#xff08;腳本文件&#xff09;、.json&#xff08;配置文件&#xff09;、.wxml&#xff08…

貪心算法二

> 作者&#xff1a;?舊言~ > 座右銘&#xff1a;松樹千年終是朽&#xff0c;槿花一日自為榮。 > 目標&#xff1a;了解什么是貪心算法&#xff0c;并且掌握貪心算法。 > 毒雞湯&#xff1a;有些事情&#xff0c;總是不明白&#xff0c;所以我不會堅持。早安! >…

react中的fiber和初次渲染

源碼中定義了不同類型節點的枚舉值 組件類型 文本節點HTML標簽節點函數組件類組件等等 src/react/packages/react-reconciler/src/ReactWorkTags.js export const FunctionComponent 0; export const ClassComponent 1; export const IndeterminateComponent 2; // Befo…

Wireshark的OSPF報文抓包和分析(單區域ospf實驗)

一、OSPF的5種數據包和7種狀態機制 數據包 Hello&#xff1a;發現、建立鄰居&#xff08;鄰接&#xff09;關系、維持、周期保活&#xff1b;存在全網唯一的RID&#xff0c;使用IP地址表示 DBD&#xff1a;本地的數據庫的目錄&#xff08;摘要&#xff09;&#xff0c;LSDB的…

前后分離文件上傳案例,前端HTML,后端Net6開發的webapi(完整源代碼)下載

文件上傳功能在項目開發中非常實用&#xff0c;本案例前端用HTML頁面的form表單實現&#xff0c;后端用Net6實現。 前后分離文件上傳案例&#xff0c;前端HTML&#xff0c;后端Net6&#xff08;完整源代碼&#xff09; 下載鏈接https://download.csdn.net/download/luckyext/9…

Linux之命令記錄【一】

文章目錄 前言幾個重要的熱鍵1.[Tab]按鍵2.[Ctrl]-c 按鍵3.[Ctrl]-d 按鍵4.[shift]{[PageUP]|[Page Down]}按鍵 線上求助&#xff08;查看幫助信息&#xff09;1. --help2.man page3.info page 用戶身份1.su 基礎指令1.date2.cal3.bc 系統字符集相關1.locale 文本編輯器1.nano …

Unity HDR顏色、基礎顏色、強度強度、HDR面板Intensity之間的相互轉換

目錄 前言&#xff1a; 一、UnityHDR面板的規律 二、HDR與基礎顏色轉換&#xff0c;HDR強度獲取&#xff0c;輸入設置強度獲取 1.基礎色->HDR顏色 2.HDR顏色->基礎色 3.獲取HDR顏色在面板中的強度 4.獲取HDR顏色在面板設置輸入時的強度 前言&#xff1a; HDR&#…

T41LQ專為人工智能物聯網(AIoT)應用設計,適用于智能安防、智能家居、機器視覺等領域 軟硬件資料+樣品測試

君正&#xff08;Ingenic&#xff09;T系列芯片涵蓋多個型號&#xff0c;每個型號根據不同應用需求提供了多個版本。以下是各型號及其主要版本&#xff1a; 1. T23系列&#xff1a; T23N&#xff1a;標準版&#xff0c;適用于移動攝像機、安全監控、視頻通話和視頻分析等應用…

高頻 SQL 50 題(基礎版)| 高級字符串函數 / 正則表達式 / 子句:1667. 修復表中的名字、1527. 患某種疾病的患者、196. 刪除重復的電子郵箱、176. 第二高的薪水、...

高級字符串函數 / 正則表達式 / 子句 1667. 修復表中的名字 題目鏈接&#xff1a;1667. 修復表中的名字 狀態&#xff1a;學會了 思路&#xff1a; 要求修復名字&#xff08;首字母大寫&#xff0c;其他字母小寫&#xff09;&#xff0c;按順序返回。 想法就是取出名字這一列&…

《異步江湖:XHR、Promise 與 Event Loop 的恩怨情仇》

XMLHttpRequest XMLHttpRequest&#xff08;簡稱 XHR&#xff09;是瀏覽器提供的一個 JavaScript 對象&#xff0c;用于在客戶端和服務器之間發送 HTTP 請求。它是實現 AJAX&#xff08;Asynchronous JavaScript and XML&#xff09; 技術的核心工具&#xff0c;允許網頁在不…

C++課程設計【宿舍管理查詢軟件】

宿舍管理查詢軟件 一、題目描述二、源碼以及說明宿舍管理查詢軟件設計與實現1. 系統設計思路1.1 功能需求1.2 數據結構2. 系統實現3. 代碼說明3.1 數據結構3.2 功能實現3.3 文件存儲4. 示例運行輸入輸出5. 總結其他QT文章推薦一、題目描述 (一)問題描述 為宿舍管理人員編寫一…

MWC 2025 | 移遠通信推出AI智能無人零售解決方案,以“動態視覺+邊緣計算”引領智能零售新潮流

在無人零售市場蓬勃發展的浪潮中&#xff0c;自動售貨機正經歷著從傳統機械式操作向AI視覺技術的重大跨越。 移遠通信作為全球領先的物聯網整體解決方案供應商&#xff0c;精準把握行業趨勢&#xff0c;在2025世界移動通信大會&#xff08;MWC&#xff09;上宣布推出全新AI智能…

C語言常用的頭文件,include文件

常用頭文件功能速覽 1 &#xff0c;通用常用頭文件 01. stdio.h——標準輸入輸出 02. stdlib.h——內存管理與分配、隨機數、字符串轉換 03. string.h——字符串處理 04. math.h——數學 05. time.h——時間和日期 06. ctype…

[MySQL初階]MySQL(4)基本查詢

標題&#xff1a;[MySQL初階]MySQL&#xff08;4&#xff09;基本查詢 水墨不寫bug 文章目錄 一. 數據表設計二、對數據表的操作1. Create 操作&#xff08;插入數據&#xff09;查看最近受影響的行數&#xff1a; 2. Retrieve 操作&#xff08;讀取數據&#xff09;&#xff0…

小米智能音箱Pro搭載“超級小愛”,支持遠程控車

大家好,今天我要給大家好好嘮嘮小米智能音箱Pro,尤其是它搭載的“超級小愛”,那功能可太強大了,還支持遠程控車,真的是給我們的生活帶來了超多便利和驚喜。 先來說說這小米智能音箱Pro的外觀。它的設計非常簡約時尚,整體造型方方正正,線條流暢,放在家里任何一個角落都…

react中的useContext--為什么使用(一)

React 的數據傳遞流程 在 React 中&#xff0c;數據傳遞通常是自上而下的&#xff0c;也就是父組件把數據通過 props 傳遞給子組件&#xff0c;子組件無法直接修改父組件的數據。 例子&#xff1a;父組件向子組件傳遞數據 const Parent () > {const user { name: &quo…

如何使用 LLM 生成的術語自動在搜索應用程序上構建 autocomplete 功能

作者&#xff1a;來自 Elastic Michael Supangkat 了解如何在 Elastic Cloud 中&#xff0c;通過使用 LLM 生成的詞匯&#xff0c;為搜索應用增強自動補全功能&#xff0c;實現更智能、更動態的搜索建議。 自動補全是搜索應用中的一項關鍵功能&#xff0c;它通過在用戶輸入時實…

MAVEN手動配置(阿里云)全教程

介于網上各種各樣的MAVEN配置過程中方法大致相同卻細節參差不齊&#xff0c;我總結了我遇見的一些問題&#xff0c;來完全的解決MAVEN手動配置的全過程&#xff0c;以及分享解決小毛病的經驗。 所需材料&#xff1a; MAVEN3.9.9&#xff08;下載適合自己的版本即可&#xff09…

DeepSeek 3FS:端到端無緩存的存儲新范式

在 2025 年 2 月 28 日&#xff0c;DeepSeek 正式開源了其高性能分布式文件系統 3FS【1】&#xff0c;作為其開源周的壓軸項目&#xff0c;3FS 一經發布便引發了技術圈的熱烈討論。它不僅繼承了分布式存儲的經典設計&#xff0c;還通過極簡卻高效的架構&#xff0c;展現了存儲技…

HarmonyOS:如何將圖片轉為PixelMap并進行圖片緩存策略

前言&#xff1a;在HarmonyOS項目開發中&#xff0c;我們使用Ark-Ts語言開發項目。我們有個功能是拍照&#xff0c;除了正常顯示出來&#xff0c;并且上傳服務器。我在開發過程中&#xff0c;遇到的問題是&#xff0c;如果離開這個頁面再回到當前頁面仍要顯示圖片&#xff0c;那…