自己動手造輪子:如何創建JAR并通過Maven在Spring Boot中引用

讓代碼復用變得簡單優雅——3分鐘學會封裝專屬工具庫

作為Java開發者,你是否遇到過這些痛點?

  • 多個項目重復編寫相同工具類

  • 工具代碼分散難以統一維護

  • 團隊協作缺乏標準化工具庫

本文將手把手教你創建自己的JAR包,并優雅地集成到Spring Boot項目中,從此告別CV大法!

一、5分鐘創建你的專屬JAR

第一步:初始化Maven項目

?1.File》New》Project

選擇java

1. 語義化版本控制

pom.xml中采用標準版本格式:

<!-- pom.xml -->
<project><groupId>com.dafu</groupId><artifactId>my-utils</artifactId><version>1.0.0</version>  <!-- 主版本.次版本.修訂號 --><properties><java.version>1.8</java.version><maven.compiler.source>${java.version}</maven.compiler.source><maven.compiler.target>${java.version}</maven.compiler.target></properties>
</project>

第二步:編寫核心工具類

創建文件:src/main/java/com/dafu/utils/StringUtils.java

package com.dafu.utils;/*** @author:DaFu* @date: 2025/7/24 11:17*/
public class StringUtils {// 首字母大寫轉換public static String capitalize(String str) {if (str == null || str.isEmpty()) {return str;}return str.substring(0, 1).toUpperCase() + str.substring(1);}// 生成隨機字符串public static String randomString(int length) {String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";StringBuilder sb = new StringBuilder();for (int i = 0; i < length; i++) {sb.append(chars.charAt((int) (Math.random() * chars.length())));}return sb.toString();}public static String toUpperCase(String input) {return input != null ? input.toUpperCase() : "";}}
第三步:打包并安裝到本地倉庫?
? 3.1命令打包
# 進入項目目錄
cd my-utils# 打包并安裝到本地Maven倉庫
mvn clean install
?3.2在 IDE 中安裝(IntelliJ IDEA 示例)
  1. 打開右側 Maven 工具窗口

  2. 展開你的自定義項目

  3. 雙擊執行 Lifecycle →?clean

  4. 雙擊執行 Lifecycle →?install

控制臺看到如下輸出即表示成功:

[INFO] --- install:3.1.2:install (default-install) @ my-utils ---
[INFO] Installing D:\我的文件\專屬JAR\my-utils\pom.xml to C:\Users\Administrator\.m2\repository\com\dafu\my-utils\1.0.0\my-utils-1.0.0.pom
[INFO] Installing D:\我的文件\專屬JAR\my-utils\target\my-utils-1.0.0.jar to C:\Users\Administrator\.m2\repository\com\dafu\my-utils\1.0.0\my-utils-1.0.0.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: ?0.874 s
[INFO] Finished at: 2025-07-24T11:36:39+08:00
[INFO] ------------------------------------------------------------------------

安裝后的文件位置:

安裝后的文件會出現在以下路徑:?

?~/.m2/repository/你的groupId/你的artifactId/版本號/

例如:

~/.m2/repository/com/dafu/my-utils/1.0.0/
├── my-utils-1.0.0.jar
├── my-utils-1.0.0.pom
└── 其他元數據文件?

驗證安裝是否成功:

  1. 檢查本地倉庫

    # Linux/macOS
    ls ~/.m2/repository/com/dafu/my-utils/1.0.0# Windows
    dir %USERPROFILE%\.m2\repository\com\dafu\my-utils\1.0.0

二、Spring Boot項目中的優雅集成

第一步:添加依賴到pom.xml
   <!--引用自定義 my-utils JAR --><dependency><groupId>com.dafu</groupId><artifactId>my-utils</artifactId><version>1.0.0</version></dependency>

?引用自定義 my-utils JAR 刷新Maven

第二步:在Spring Boot中調用工具類?

創建測試: src/test/java/com/dafu/springboottest/SpringBootTestApplicationTests.java

四、常見問題排雷指南

問題1:依賴找不到(ClassNotFound)
? 解決方案:

# 1. 檢查本地倉庫是否存在該JAR
ls ~/.m2/repository/com/dafu/my-utils# 2. 強制更新依賴
mvn clean install -U

五、為什么值得封裝自己的JAR?

  1. 代碼復用率提升:一次封裝,終身受益

  2. 統一技術棧:團隊共享標準化工具庫

  3. 持續演進能力:獨立更新不影響主項目

  4. 專業度提升:展現架構設計能力

優秀的開發者不僅是工具的使用者,更是工具的創造者。

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

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

相關文章

使用dea工具 給vue 里面的ts打斷點

在 Vue 項目中使用 TypeScript 時&#xff0c;我們通常會在 IDE&#xff08;如 JetBrains 的 IntelliJ IDEA 或 WebStorm&#xff09;中設置斷點進行調試。以下是詳細步驟&#xff1a; 準備工作 確保項目已配置 source maps&#xff08;Vue CLI 創建的項目默認已配置&#xff0…

Zabbix 企業級分布式監控

目錄 簡介 一、監控系統基礎 1.1 監控的價值 1.2 監控的 5 大類型與 5 大層次 1.3 監控系統的實現原理 二、Zabbix&#xff1a;企業級監控方案 2.1 Zabbix 簡介 2.2 Zabbix 核心功能特性 2.3 Zabbix 角色與架構 三、Zabbix 部署案例 3.1 資源清單 3.2 基礎環境配置…

SQL JOIN 全解析:用 `users` 與 `orders` 表徹底掌握內連接、左連接、右連接

SQL JOIN 全解析&#xff1a;用 users 與 orders 表徹底掌握內連接、左連接、右連接 在日常開發中&#xff0c;SQL 的連接&#xff08;JOIN&#xff09;語句是數據庫查詢的核心技能。尤其在多表聯合查詢時&#xff0c;不掌握好 INNER JOIN、LEFT JOIN、RIGHT JOIN&#xff0c;…

(一)從零搭建unity3d機械臂仿真-unity3d導入urdf模型

1.新建工程并加載模型 &#xff08;1&#xff09;unity中新建3d工程 &#xff08;2&#xff09;將機器人模型導入到unity3d中 導入開源Unity-Robotics-Hub的機械臂。 詳細操作參考視頻 ROS Unity URDF Import Testing Robot Motion 使用 URDF Importer工具 在 Unity 中&#x…

Linux之網絡部分-應用層自定義協議與序列化

一、應用層 1.1、理解協議 協議是一種 "約定". socket api 的接口, 在讀寫數據時, 都是按 "字符串" 的方式來發送接收的。如果我們要傳輸一些 "結構化的數據" 怎么辦呢? 其實&#xff0c;協議就是雙方約定好的結構化的數據。 1.2、網絡版計…

機器學習week3-分類、正則化

1. 邏輯回歸1.1. 線性回歸 vs 邏輯回歸對比維度線性回歸邏輯回歸任務類型回歸&#xff08;預測連續值&#xff09;分類&#xff08;預測離散類別&#xff09;輸出范圍(?∞,∞)[0,1]&#xff08;概率值&#xff09;損失函數均方誤差&#xff08;MSE&#xff09;對數損失&#x…

FastAdmin 中生成插件

在 FastAdmin 中生成一個 OCR 發票識別插件&#xff0c;可以按照以下步驟進行開發。這里假設你已經熟悉 FastAdmin 插件開發的基本流程&#xff0c;并會使用 Composer 和 PHP 擴展。1. 創建插件骨架使用 FastAdmin 命令行工具生成插件基礎結構&#xff1a;php think addon -a o…

DevExpress WinForms中文教程:Grouping(分組)- 如何自定義分組算法?

DevExpress WinForms擁有180組件和UI庫&#xff0c;能為Windows Forms平臺創建具有影響力的業務解決方案。DevExpress WinForms能完美構建流暢、美觀且易于使用的應用程序&#xff0c;無論是Office風格的界面&#xff0c;還是分析處理大批量的業務數據&#xff0c;它都能輕松勝…

PHP 與 Vue.js 結合的前后端分離架構

PHP 與 Vue.js 結合是構建現代 Web 應用的流行技術棧&#xff0c;通常采用 前后端分離架構。以下是關鍵要點和推薦實現方案&#xff1a; 一、技術棧組合 角色技術選項后端 (PHP)Laravel (推薦)、Symfony、CodeIgniter前端 (Vue)Vue 2/3、Vue Router、Pinia/Vuex、Vite通信協議…

XML高效處理類 - 專為Office文檔XML處理優化

/**** 提供XML讀取、寫入、修改、查詢等高級功能&#xff0c;支持命名空間和復雜XML結構* * 主要功能&#xff1a;* 1. 復雜路徑解析&#xff08;支持屬性篩選、索引、通配符&#xff09;* 2. 完整節點類型支持&#xff08;元素、文本、CDATA、注釋、PI&#xff09;* 3. 高效元…

星慈光編程蟲2號小車講解第一篇--向前向后

星慈光編程蟲2號小車是一款基于微控制器&#xff08;如Arduino&#xff09;的編程教學小車&#xff0c;常用于學習機器人控制和編程基礎。本講解將重點介紹小車的基本運動&#xff1a;前進、后退、左轉和右轉。這些運動通過控制電機實現&#xff0c;通常涉及調整電機的方向和速…

iOS 加固工具有哪些?快速發布團隊的實戰方案

在當今快速迭代的 iOS 開發環境中&#xff0c;團隊需要在高頻上線與應用安全之間找到平衡。快速發布不應犧牲安全性&#xff0c;而安全加固也不應成為阻礙上線的瓶頸。這就要求開發者在加固工具的選型與流程設計上&#xff0c;做到既高效又可靠。 那么&#xff0c;iOS 加固工具…

結構型模式-架構解耦與擴展實踐

結構型模式聚焦于對象間的組合關系&#xff0c;通過優化類與對象的裝配方式&#xff0c;實現系統的靈活性與可擴展性。在分布式系統中&#xff0c;由于多節點協作、跨網絡通信及異構環境集成等特性&#xff0c;傳統結構型模式需進行適應性改造&#xff0c;以應對分布式特有的復…

scratch筆記和練習-第三課

角色的大小變化 亮度等特效設置 流程圖圖形符號 Figma攻略&#xff1a;26個流行流程圖符號及其解釋 練習 實現在閃動10次后角色緩緩變回原形

Redis MCP 安裝與配置完整指南

一、Redis MCP 簡介 Redis MCP (Managed Control Plane) 是一個獨立于 Redis 服務運行的管理控制平臺&#xff0c;用戶可通過該平臺快速高效地管理和配置 Redis 實例。Redis MCP 可配合開源 Redis 或 Redis Cloud 使用。 二、安裝 Redis MCP 服務 Redis MCP 提供多種安裝方式&a…

Spring Boot配置文件加載全指南:從基礎到Spring Cloud集成

??? ??一、核心概念? 配置文件默認存在加載順序優先級主要用途必需依賴bootstrap.yml? 無1(最先)最高Spring Cloud上下文初始化spring-cloud-starter-bootstrapbootstrap.properties? 無1(略高于.yml)最高同上同上application.yml? 自動創建2中等應用核心配置無appl…

Python通關秘籍(六)數據結構——字典

前文復習 五、數據結構 5.1 列表(List) 列表是一種有序的可變數據集合,可以包含不同類型的元素。

自學嵌入式 day33 TCP、HTTP協議(超文本傳輸協議)

6、黏包問題&#xff08;1&#xff09;、原因&#xff1a;發送方發送數據太快或者接收方接收數據太慢&#xff0c;導致數據在緩沖區緩存。&#xff08;2&#xff09;、解決方法&#xff1a;①發送指定大小數據&#xff08;結構體&#xff09;問題&#xff1a;結構體對齊問題&am…

LinuxShell 的 Here-Document(<< EOF) 筆記250723

LinuxShell 的 Here-Document(<< EOF) 筆記250723 Here-Document(<< EOF) Linux Shell Here Document (<< EOF) 終極指南 Here Document&#xff08;立即文檔&#xff09;是 Shell 中用于多行輸入重定向的強大功能&#xff0c;其核心語法為 << DELI…

【windows修復】解決windows10,沒有【相機] 功能問題

問題: windows10,相機模塊,好像是被卸載了,想重新安裝 方法簡介: 先下載windows store, 然后,在windows store 里面下載 相機功能: 解決: 直接下載官方離線包并手動安裝(成功率 90%+) 1 用瀏覽器打開 https://store.rg-adguard.net 這是微軟 CDN 解析站,安…