Maven 從 0 到 1:安裝、配置與依賴管理一站式指南

Maven 從 0 到 1:安裝、配置與依賴管理一站式指南

  • Maven 從 0 到 1:安裝、配置與依賴管理一站式指南
    • 一、Maven 是什么?
    • 二、核心概念:POM
    • 三、Maven 是如何工作的?—— 倉庫機制
    • 四、安裝Maven
    • 五、在 IntelliJ IDEA 里配置Maven
    • 六、解析 Maven 坐標
      • 6.1 Maven 坐標的核心組成部分
      • 6.2 一個具體的例子
      • 6.3其他重要概念
      • 6.4總結
    • 七、Maven 依賴配置超簡三步走
      • 第 1 步:找到依賴項信息
      • 第 2 步:將依賴項添加到 pom.xml
      • 第 3 步:排除依賴
    • 八、Maven 生命周期核心講解
      • 1. 三大生命周期 (Lifecycle)
      • 2. 生命周期階段 (Phase)
      • 3. 在IDEA里面使用Maven命令
      • 4. 在終端里使用Maven命令

Maven 從 0 到 1:安裝、配置與依賴管理一站式指南

你是否曾經在開始一個 Java 項目時,面對一堆需要下載的 .jar 包感到頭疼?是否因為項目結構混亂,導致團隊協作困難?別擔心,Maven 就是來解決這些問題的!

這篇文章將用最通俗易懂的方式,帶你從零開始認識 Maven。


一、Maven 是什么?

簡單來說,Maven 是一個項目管理和構建工具

你可以把它想象成一個非常智能、全能的項目助理。你只需要告訴它你的項目需要什么(比如需要 Spring 框架版本 5.x,需要 JUnit 來測試),它就會自動幫你:

  1. 下載和管理這些依賴的庫(.jar 包)。
  2. 編譯你的源代碼。
  3. 運行測試用例。
  4. 打包你的項目(打成 .jar.war 文件)。
  5. 部署你的項目。

它的核心思想是 “約定優于配置” 。這意味著 Maven 已經為你規定好了一個標準的項目目錄結構。只要你按照這個結構來放置文件,Maven 就知道該去哪里找源代碼、資源文件等,你就不需要再寫一大堆配置去告訴它了。


二、核心概念:POM

Maven 的所有行為都圍繞一個核心文件展開:pom.xml

POM 的全稱是 Project Object Model(項目對象模型)。它就像是你這個項目的“身份證”和“說明書”,存放在你項目的根目錄下。

在這個 pom.xml 文件里,你定義了關于你項目的所有重要信息,Maven 正是通過讀取這個文件才知道該如何工作的。

一個最基本的 pom.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.mycompany</groupId>   <!-- 公司或組織名,倒敘域名 --><artifactId>my-first-app</artifactId> <!-- 項目名 --><version>1.0.0-SNAPSHOT</version>     <!-- 版本號 --><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><!-- 依賴列表 --><dependencies><!-- 一個具體的依賴 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope> <!-- 作用域:只在測試時使用 --></dependency></dependencies>
</project>

什么是“坐標”?

  • groupId, artifactId, version 這三個屬性組成了 Maven 世界的“坐標”,通過這個坐標,Maven 可以唯一地定位到任何一個第三方庫。這也是它能夠自動下載依賴的秘訣。

三、Maven 是如何工作的?—— 倉庫機制

Maven 通過倉庫來統一管理所有依賴。

  1. 本地倉庫:在你個人電腦上的一個文件夾。Maven 會先把所有下載好的 jar 包放在這里。默認路徑是 ~/.m2/repository
  2. 中央倉庫:由 Maven 社區維護的全球唯一倉庫。當你聲明了一個依賴后,Maven 會首先在本地倉庫查找,如果找不到,就會自動去中央倉庫下載到你本地。
  3. 私服:一些大公司會在內部搭建的私有倉庫服務器,作為中央倉庫的鏡像,目的是節省帶寬和加速構建。

這個過程完全是自動的,你只需要在 pom.xml 中聲明 “我需要什么”,而不需要手動搜索、下載、添加。這極大地解決了依賴管理帶來的混亂。

在這里插入圖片描述


四、安裝Maven

Maven官網下載地址:https://maven.apache.org/download.cgi

在這里插入圖片描述

下載好了之后將壓縮包解壓在沒有中文路徑的地方。

  1. 配置一個本地倉庫(新建一個名為mvn_repo的文件夾)
    我此處的路徑為:D:\apache-maven-3.9.11\mvn_repo
  2. 修改配置文件,用記事本打開"D:\apache-maven-3.9.11\conf\settings.xml"
    在這里插入圖片描述
    添加這串代碼
  <localRepository>D:\apache-maven-3.9.11\mvn_repo</localRepository>
  1. 將鏡像替換為阿里云鏡像
    <mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf></mirror>

在這里插入圖片描述

  1. 在系統變量里面添加%MAVEN_HOME%目錄選擇D:\apache-maven-3.9.11
  2. 在path里面新建一個%MAVEN_HOME%\bin
  3. 在cmd里面輸入mvn -v在這里插入圖片描述
    若出現這個則說明安裝完成

五、在 IntelliJ IDEA 里配置Maven

首先打開 IntelliJ IDEA 的設置(記得先關閉當前項目,在全局設置里面調,不然調的是項目的設置

  1. 構建、執行、部署里找到構建工具——>Maven
    更改主路徑和用戶設置文件
    在這里插入圖片描述

  2. 在 Maven的下面的【運行程序】里面添加當前你的JRE版本
    在這里插入圖片描述

  3. 檢查Java編譯器,項目字節碼版本應該與語言級別相同
    在這里插入圖片描述

  4. 創建一個新項目,在項目結構里面檢查一下
    在這里插入圖片描述
    ![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/32a438758903401ca53b7b5fc2fc40b7.png

  5. 運行成功就說明配置好了在這里插入圖片描述


六、解析 Maven 坐標

Maven 坐標是 Maven 的核心概念,它就像是一個物件的唯一身份證,通過一組標識來精確定位和管理項目所依賴的任何一個構件(Jar 包、War 包等)。

6.1 Maven 坐標的核心組成部分

一個完整的 Maven 坐標主要由以下 5 個基本元素組成,其中前三個是必選的,后兩個是可選的。

元素說明是否必須舉例
groupId組織/公司標識。通常使用反向域名規則,如公司域名倒序。它定義了項目所屬的組織或集團,下轄多個 artifactId必須org.springframework.boot, com.google.guava
artifactId項目/模塊標識。代表該組織下的一個具體項目或模塊。生成的構件的名稱會基于這個 artifactId必須spring-boot-starter-web, guava
version版本號。指定項目的當前版本。必須2.7.3, 31.1-jre
packaging打包方式。指定項目構建后生成的構件類型。如果未指定,默認為 jar可選jar, war, pom, maven-plugin, ear
classifier分類器。用于區分從相同 POM 但內容不同的構件。例如,javadocsources 構件。可選sources(源碼包), javadoc(文檔包), jdk8(針對JDK 8的版本)

6.2 一個具體的例子

我們來看一個非常常見的 Maven 依賴聲明,它來自 pom.xml 文件中<dependencies> 部分:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.7.3</version></dependency>

解析這個坐標:

  1. groupId: org.springframework.boot

    • 這告訴我們,這個依賴是由 Spring Boot 這個組織(項目)維護的。所有 Spring Boot 官方提供的構件都以這個開頭。
  2. artifactId: spring-boot-starter-web

    • 這是 Spring Boot 組織下的一個具體模塊,名為 spring-boot-starter-web。從名字就能看出,它是用于支持 Web 應用開發的起步依賴。
  3. version: 2.7.3

    • 這個 Web 起步依賴的具體版本是 2.7.3。Maven 會根據這個版本號去倉庫里尋找對應的 jar 文件。
  4. packaging: jar (默認值,未顯式寫出)

    • 這個依賴最終被打包成一個 Jar 文件,例如 spring-boot-starter-web-2.7.3.jar

最終,Maven 會根據這個坐標,在本地倉庫或遠程中央倉庫中尋找名為:
org/springframework/boot/spring-boot-starter-web/2.7.3/spring-boot-starter-web-2.7.3.jar
的文件。


6.3其他重要概念

  • 坐標的唯一性groupId + artifactId + version + packaging + classifier 這五個元素組合起來,構成了一個全球唯一的標識。世界上不會有兩個構件擁有完全相同的這組坐標。

  • SNAPSHOT 版本:版本號中如果帶有 -SNAPSHOT(例如 1.0.0-SNAPSHOT),表示這是一個快照版本,通常處于開發階段。Maven 會優先去遠程倉庫檢查是否有更新的快照版本,這對于團隊協作開發非常有用。

  • 版本范圍:你可以指定一個版本范圍而不是固定版本(如 [1.2.0,)),但不推薦使用,因為它會導致構建的不確定性。

  • <scope>:雖然不屬于坐標本身,但常與坐標一同使用。它定義了依賴的作用范圍(如 compile, test, provided, runtime),決定了依賴在項目生命周期哪個階段可用。

6.4總結

Maven 坐標是一個簡單而強大的尋址系統。理解它的每個部分意味著:

  • 當你需要添加一個依賴時,你知道如何去網上(如 Maven Central Repository)查找正確的 groupId, artifactIdversion
  • 當你看到一段依賴配置時,你能立刻明白它引用的是哪個組織的哪個項目的哪個版本。
  • 當出現依賴沖突時,你能根據坐標信息快速定位問題來源。

七、Maven 依賴配置超簡三步走

第 1 步:找到依賴項信息

當你想要在項目中使用某個第三方庫時,你需要知道它的 ??坐標(Coordinates)??,即三個信息:

  1. groupId??: 通常代表組織或項目組。

  2. ??artifactId??: 代表項目中的具體庫名。

  3. ??version??: 庫的版本號。

??如何找到這些信息???

最直接的方法是去 Maven 中央倉庫https://mvnrepository.com/搜索。

  1. 打開網站,在搜索框輸入你想要的庫名,例如 Spring Context。

  2. 選擇一個穩定且常用的版本(版本號后面有 Usage柱狀圖的那個),點擊進去。
    在這里插入圖片描述3. 頁面中會直接給出它的 Maven 配置代碼,復制即可。
    在這里插入圖片描述

第 2 步:將依賴項添加到 pom.xml

在你的 Maven 項目根目錄下,有一個最重要的文件叫 pom.xml。打開它,找到 <dependencies>標簽。??所有的依賴項都要放在這個標簽里面??。如果還沒有這個標簽,就在 <project>標簽內,自己創建它。把你從中央倉庫復制的代碼,粘貼到 <dependencies>內部。

??示例:??
假設我們找到了 Jackson Databind版本 2.15.2,那么你的 pom.xml看起來應該是這樣的:

在這里插入圖片描述

點擊刷新,看到maven這欄依賴項里面有就說明配置好了
在這里插入圖片描述

第 3 步:排除依賴

如果需要某個依賴,但想??排除它帶來的特定子依賴??,使用 <exclusions>標簽:

    <dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>6.2.7</version><exclusions><!-- 排除不需要的子依賴 --><exclusion><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId></exclusion><exclusion><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId></exclusion></exclusions></dependency></dependencies>

再次刷新過后可以發現依賴項已經被刪除了在這里插入圖片描述


八、Maven 生命周期核心講解

Maven 的生命周期被設計得非常完善和有序,它包含了項目構建的所有環節。其核心思想是:生命周期由多個階段(Phase)組成,每個階段負責一個特定的任務,并且這些階段是按順序執行的。

1. 三大生命周期 (Lifecycle)

Maven 擁有三套相互獨立的生命周期:

  • clean:清理生命周期,負責清除上次構建生成的文件(比如刪除 target 目錄)。
  • default (或 build):構建生命周期,這是最核心的部分,負責編譯、測試、打包、部署等整個構建過程。
  • site:站點生命周期,負責生成項目報告、站點文檔等。

2. 生命周期階段 (Phase)

每個生命周期都由一系列按順序排列的階段構成。執行某個階段,會自動執行它之前的所有階段。

以最重要的 default(構建)生命周期為例,其關鍵階段包括(按順序):

  1. validate:驗證項目是否正確且所有必要信息可用。
  2. compile:編譯項目的源代碼。
  3. test:使用單元測試框架(如 JUnit)運行測試。此階段不會要求打包或部署代碼。
  4. package:將編譯后的代碼打包成可分發格式,如 JAR、WAR 包。
  5. verify:對集成測試結果進行檢查,以確保滿足質量要求。
  6. install:將打包好的軟件包安裝到本地倉庫,以便其他本地項目依賴使用。
  7. deploy:在構建環境中完成,將最終的軟件包復制到遠程倉庫,以便其他開發者和項目共享。

3. 在IDEA里面使用Maven命令

以下面的pom.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>org.example</groupId><artifactId>Maven2</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>21</maven.compiler.source><maven.compiler.target>21</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><!-- https://mvnrepository.com/artifact/org.springframework/spring-context --><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>6.2.7</version><exclusions><!-- 排除不需要的子依賴 --><exclusion><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId></exclusion><exclusion><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId></exclusion></exclusions></dependency></dependencies>
</project>

在IDEA右側的Lifestyle里面雙擊即可執行
在這里插入圖片描述
以下是執行完package之后的場景,會在target里面生成一個jar包

在這里插入圖片描述
運行完install之后可以在我們本地倉庫里面找到安裝好的jar包

此時我的 路徑為D:\apache-maven-3.9.11\mvn_repo\org\example\Maven2\1.0-SNAPSHOT

<groupId>org.example</groupId>這行代碼里面的org.example就是我們在本地倉庫里面需要找的路徑

在這里插入圖片描述

4. 在終端里使用Maven命令

項目編譯與打包

命令說明
mvn compile編譯源代碼,生成 .class 文件到 target/classes 目錄
mvn test運行測試用例(會先自動執行 compile
mvn package打包項目(會先執行 test),生成 JAR/WAR 包到 target/ 目錄
mvn install安裝到本地倉庫(會先執行 package),以便其他本地項目引用
mvn clean清理項目,刪除 target 目錄
mvn clean install最常用組合:先清理再安裝,確保是全新構建

跳過測試相關

命令說明
mvn install -DskipTests跳過測試,但會編譯測試代碼
mvn install -Dmaven.test.skip=true完全跳過測試,不編譯也不執行測試

依賴管理

命令說明
mvn dependency:tree顯示依賴樹,查看所有傳遞性依賴,排查 Jar 包沖突神器
mvn dependency:resolve解析依賴,下載所有依賴包
mvn dependency:purge-local-repository清理本地倉庫中當前項目的依賴緩存(慎用)

其他實用命令

命令說明
mvn help:effective-pom查看有效 POM,顯示所有默認配置與自定義配置合并后的最終結果
mvn --versionmvn -v查看 Maven 版本信息
mvn <phase> -h--help獲取幫助,例如 mvn install -h

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

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

相關文章

k8s,v1.30.4,安裝使用docker

一.前置概念Docker 與 Kubernetes 共用同一個 containerd 進程 時&#xff0c;只要滿足以下 3 個條件&#xff0c;就不會沖突&#xff1a;檢查點要求原因cgroup-driverkubelet 與 containerd 必須同為 systemd二者不一致會導致 Pod 無法調度Unix socketkubelet 指向 /run/conta…

開源AI智能名片鏈動2+1模式S2B2C商城小程序服務提升復購率和轉介紹率的研究

摘要&#xff1a;本文聚焦于開源AI智能名片鏈動21模式S2B2C商城小程序在提升客戶復購率和轉介紹率方面的作用。服務對于促進客戶復購和轉介紹的重要性不言而喻&#xff0c;維護老客戶的成本遠低于開發新客戶&#xff0c;微商通過推出各項服務來贏得客戶忠誠。本文深入探討開源A…

[數據結構] ArrayList(順序表)與LinkedList(鏈表)

目錄 1.List 1.1 什么是List 1.2 常用的方法 1.3 List的使用 2. 線性表 3. ArrayList 類(順序表) 3.1 順序表定義 3.2 ArrayList鏈表的功能模擬實現 3.3 ArrayList簡介 3.4 ArrayList的構造方法 3.5 ArrayList的遍歷 3.5 ArrayList的具體使用實例 3.5.1 楊輝三角 …

Hive使用Tez引擎出現OOM的解決方法

環境是Hive以Tez作為引擎&#xff0c;然后使用客戶端&#xff08;比如DataGrip&#xff09;連接Hive運行SQL查詢&#xff0c;運行過程中報錯信息如下&#xff1a;java.lang.OutOfMemoryError: Java heap space…連接工具以DataGrip為例&#xff0c;解決辦法如下&#xff1a; --…

SQL面試題及詳細答案150道(81-100) --- 子查詢篇

《前后端面試題》專欄集合了前后端各個知識模塊的面試題,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs,nodejs,mangoDB,MySQL,Linux… 。 前后端面試題-專欄總目錄 文章目錄 一、本文面試題目錄 81. 什么是子查詢?子查…

筆記:ubuntu安裝matlab

記錄一下ubuntu安裝matlab的過程 一、進入桌面 雖然系統是ubuntu server&#xff0c;但是安裝matlab最好還是有桌面。這里使用todesk等工具&#xff0c;進入桌面進行遠程安裝。 二、創建matlab賬號 由于學校已經提供了matlab的賬號&#xff0c;只需要用自己的學生郵箱進行注冊即…

CentOS 7 編譯安裝 OpenSSL 3.4.2

CentOS 7默認已經安裝了OpenSSL&#xff0c;不過版本比較低 openssl version結果為&#xff1a;OpenSSL 1.0.2k-fips 26 Jan 2017 已經無法滿足需求 OpenSSL 源碼下載鏈接&#xff1a;https://www.openssl-library.org/source/ 下載源碼包為&#xff1a;https://github.com…

python advance -----object-oriented

alt shift 上下鍵&#xff0c;行代碼上下移動0

具身智能的工程落地:視頻-控制閉環的實踐路徑

引言&#xff1a;從“能算會說”到“會看能做” 具身智能真正的門檻&#xff0c;不在于把模型做得更大&#xff0c;而在于把感知—決策—執行焊成一條低時延、穩態可控的閉環工程鏈路&#xff1a;從相機/麥克風采集&#xff0c;到編解碼與傳輸&#xff0c;再到邊/端推理、指令…

STM32 - Embedded IDE - GCC - 如何在工程中定義一段 NoInit RAM 內存

導言如上所示&#xff0c;Keil創建一段NoInit內存同樣是通過圖形界面來完成&#xff0c;IRAM2的起始地址0x2000000&#xff0c;大小8bytes。NoInit的意思是程序初始化時&#xff0c;不會將內存清0初始化。如上所示&#xff0c;在MEMORY段&#xff0c;將64K的RAM內存劃一塊8byte…

MyBatisX代碼生成插件在IDEA中的安裝配置、連接數據庫表生成代碼快速開發示例

場景 MyBatisX插件介紹 MybatisX是一款基于IDEA的快速開發插件&#xff0c;由MyBatis-Plus團隊開發維護&#xff0c;為效率而生。 它的主要功能如下&#xff1a; 支持mapper.xml和Mapper接口之間方法的互相導航跳轉&#xff1b; 內置代碼生成器&#xff0c;通過使用GUI的形…

單詞分析與助記之數據建表(以production為例)

單詞分析與助記數據建表&#xff08;以production為例&#xff09;&#xff1a; id&#xff08;流水號&#xff09;&#xff1a;詞形&#xff1a;production配圖1-標題&#xff1a;略配圖1-地址&#xff1a;略配圖2-標題&#xff1a;略配圖2-地址&#xff1a;略配圖3-標題&…

AI助力決策:告別生活與工作中的糾結,明析抉擇引領明智選擇

在日常生活與工作中&#xff0c;我們時常會面臨各種糾結的決策。從選擇一份新工作、創業方向&#xff0c;到決定是否要搬家、換車&#xff0c;每一個決策都可能對我們的未來產生深遠影響。然而&#xff0c;面對復雜多變的信息和不確定的未來&#xff0c;如何做出明智的選擇成為…

--定位--

GPSRTK GPS組成 GPS分為三部分。 空間星座部分&#xff1a;由至少24顆衛星組成&#xff08;目前有30多顆在軌運行&#xff09;&#xff0c;分布在6個中地球軌道上。保證全球任何地方、任何時間至少能接收到4顆以上的衛星信號。每顆衛星不斷播發一種包含衛星星歷?&#xff0…

音轉文模型對比FunASR與Faster_whisper

FunASR簡介 FunASR是由阿里巴巴達摩院開源的語音識別工具包&#xff0c;提供包括語音識別&#xff08;ASR&#xff09;、語音活動檢測&#xff08;VAD&#xff09;、標點恢復、語言模型、說話人驗證、說話人分離及多說話人ASR等多種功能。FunASR工具包支持工業級語音識別模型的…

uniapp阿里云驗證碼使用

在 UniApp 中使用阿里云驗證碼插件&#xff08;aliyun-captcha&#xff09;需要完成微信小程序端的插件配置和項目內的組件使用兩個主要步驟&#xff0c;以下是詳細流程&#xff1a; 一、微信公眾平臺配置插件&#xff08;必須&#xff09; 獲取插件 AppID 阿里云驗證碼插件的…

基于開源AI大模型AI智能名片S2B2C商城小程序的情感營銷策略研究

摘要&#xff1a;本文聚焦于開源AI大模型AI智能名片S2B2C商城小程序這一新興商業工具&#xff0c;探討情感在其營銷中的核心地位。情感在營銷里是需突出表現的關鍵要素&#xff0c;價值觀與極致化生活方式均是對情感的闡釋。在開源AI大模型AI智能名片S2B2C商城小程序的背景下&a…

警惕!你和ChatGPT的對話,可能正在制造分布式妄想

2021年圣誕節&#xff0c;19歲的英籍印度裔男子 賈斯旺辛格柴爾 &#xff08;Jaswant Singh Chail&#xff09;帶著一把十字弩闖入溫莎城堡&#xff0c;聲稱要 刺殺英國女王 &#xff0c;為英國歷史上的暴行復仇。 這場荒謬的刺殺注定以失敗告終。被捕后&#xff0c;他自稱是一…

DeepSeek輔助在64位Linux中編譯運行32位的asm-xml-1.4程序

在網上搜快速xml解析器時找到一個2012年的asm-xml-1.4程序說是比expat快幾倍&#xff0c;有點不信&#xff0c;想編譯看看。 下載了源代碼, 解壓縮到/par&#xff0c;其中obj目錄下有預編譯好的.o文件。 然后運行如下命令編譯示例&#xff0c;出錯了 cd /par/asm-xml-1.4/exa…

STM32CubeProgrammer軟件安裝

STM32CubeProgrammer軟件安裝 下載地址 【英文界面】STM32CubeProg | Software - STMicroelectronics 【中文界面】STM32CubeProg | Software - 意法半導體STMicroelectronics 下載 點擊獲取最新版本下載安裝包登錄ST賬號進行下載當Edge瀏覽器下載失敗時, 換個瀏覽器下載下…