【Java】建立Maven專案使用第三方套件

閱讀時間約 2 分鐘

前言

相信很多初學者學Python的原因,不外乎語法簡單、好上手、重點是有很多現成的套件可以玩。那麼,Java呢?有!當然有!而且還多到你不知道該選哪個好!

今天的文章主要示範如何在vscode新建立Java 的Maven專案,並且透過Maven安裝這些額外的套件(依賴),從此打開Java不再只是學基本語法跟物件導向的概念,而是開間五金行使用各式各樣的現成工具完成任務

進入正題

首先建立一個空的資料夾命名為Java17,作為本次的工作區。

空資料夾

空資料夾

按下ctrl +p 並輸入">" (或者直接按F1),選擇Create Java Project

新建專案

新建專案

選擇Maven

選擇Maven

會詢問需要何種類型的專案,這裡要用的是Maven作為管理套件
(類似npm、pip等套件管理工具)

  • No build tool
  • Maven
  • Gradle
  • Spring Boot

之後彈出各種選項提示,我都先選第一個,建立一個很單純Maven專案,不包含其他項目。

中間過程會要你輸入專案名稱,要建立的package名稱等,方便起見我都維持預設。

建立完成,展開目錄架構

建立完成,展開目錄架構

預設名稱為demo,前面的各項執行步驟已經建立好整體的基本架構,如圖中所示,其中pom.xml(Project Object Model)為Maven專案中的必要文件,以xml的格式描述專案內容,例如版本資訊、名稱、輸出打包格式等。

更改運行環境

更改運行環境

發現pom檔內還是1.8的版本,調整為17後存檔;當看到其他地方都出現了紅字套色,可以試試做clean workspace的動作,有時候發生自動提示異常或沒生效,甚至重啟vscode也還是一樣,通常進行過清除後就沒事了。




回到我們的主程式Main.java,用一個工作上常見的StringUtils為示範,該類別是Apache commons-lang3 jar檔的一部份,圖中可以看到提示無法出現相關資訊,intelliSense認不得這個套件,因為我們專案也沒有這個類別檔案。

怎麼解?從網路上載下來,讓專案引入這個類別囉!有下列兩種做法:

  1. 下載jar檔,手動放到~/.m2/repository/
  2. 直接貼上dependency(依賴)到pom.xml內,更新專案自行載入(採此方式)
raw-image
raw-image

到Apache Commons的網站, 找到依賴的xml資訊。更新完後可以發現我們左邊Maven Dependencies出現剛剛引入的套件,回到主程式再確認執行看看。

pom.xml更新dependency區塊

pom.xml更新dependency區塊

套件順利使用,執行程式輸出結果。

使用StringUtils.isBlank判斷是否為空白字串

使用StringUtils.isBlank判斷是否為空白字串

結語

自此,網路上有的jar檔都可以拿來玩玩了:

  • Excel :Apache POI
  • 爬蟲:Jsoup
  • 自動化測試:Selenium


例如,爬個ptt文章標題。

raw-image


11會員
55內容數
遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
留言0
查看全部
發表第一個留言支持創作者!
Err500 的其他內容
【Python】使用虛擬環境pipenv
閱讀時間約 2 分鐘
【Docker】初玩Docker
閱讀時間約 1 分鐘
你可能也想看
迎新活動「方格新手村」:新格友註冊加入方格子,知名日料吃到飽餐券送給你! 👉 還不是 vocus 的會員嗎?點此註冊,參與新手村活動 👈 近期站上也出現了不少新格友,為了歡迎各位的加入,「方格新手村」隨之登場! 即日起,只要是新註冊帳號於活動期間內發佈 3 則文章,就有機會抽獎獲得知名日料吃到飽餐券。原格友也可以一起同樂,我們準備了小任
Thumbnail
2024-06-21
97
川普當選,對台股是利多還是利空?川普在槍擊事件中所表現出來的英勇形象,讓他贏得美國總統大選幾乎已成定局。沒想到他隨口的一句話「台灣搶走美國的晶片生意,所以要付保護費」,就讓台積電在短短三天跌掉超過100 元,台股也跌掉1100點以上。台積電、台股會就此一路下跌嗎?未來該如何因應?  
Thumbnail
2024-07-20
52
金融科技與生活美學的融合 CUBE App實踐自我理想最近開啟了研究工作,也開始斜槓著手團購、行銷、洽談業務,慢慢想打造一條屬於自己的道路,而工作忙碌之虞,總忘記自己刷卡消費明細、信用卡繳費,還會忽略了最應該的投資理財,也常常在忙碌奔波中忘記信用卡優惠,國泰世華CUBE App給足了這些功能和服務。 日常生活與數位、科技形影不離,同時也拉近彼此距
Thumbnail
2024-07-11
11
java程式碼 內容是九九乘法表public class MultiplicationTable { public static void main(String[] args) { int size = 9; // 設定九九乘法表的大小 // 雙層迴圈用於生成九九乘法表 f
Thumbnail
2023-05-18
4
Java Script自學經驗回顧來到學期2-3的階段,第一個作業就是打造餐廳清單。原本認為經過電影清單的學習經歷之後,對於打造餐廳清單應該也不會太過困難;沒想到我花了2個月的時間才把作業完整交出去。 在寫餐廳清單的初期,第一個碰到的問題就是首頁無法秀出餐廳評分這個選項。我試著參考其他同學的作品也改了版面的設計,卻始終無法出現餐廳評
Java Bird Coffee|通化街六張犁商圈,小巧而溫馨禾雀咖啡工作室位在通化街尾端,靠近六張犁的禾雀咖啡工作室,質樸的感覺是一家適合假日早晨來待上好一會兒的好去處。 主打自家烘培手沖及義式咖啡,最大特色還有自家製的麵包、甜點輕食,最喜歡吃的莫過於他們的鮮奶吐司。曾經住在這裡好長一段時間,週末去搶個一包可以在家裡烤來吃,是相當幸福的感覺。 冰羅馬咖啡則是我喝過最喜歡的
Thumbnail
2023-02-06
13
Java abstract class 與 interface 的差別abstract class = 抽象類別 interface = 介面 抽象類別與介面都無法建立物件。 1. 使用abstract關鍵字來建立抽象類別,interface關鍵字建立介面。 interface只能繼承interface,且可以繼承多個:
Thumbnail
2022-07-04
3
JAVA繼承篇繼承 在Java中,一個類可以由其他類派生。如果你要創建一個類,而且已經存在一個類具有你所需要的屬性或方法,那麼你可以將新創建的類繼承該類。 利用繼承的方法,可以重用已存在類的方法和屬性,而不用重寫這些代碼。被繼承的類稱為超類(super class),派生類稱為子類(subclass)。 繼承的特
Thumbnail
簡單理解Java的functional interface在學Java的人也許多少人會跟小的一樣不是很理解functional interface到底在幹嘛,也覺得語法很多此一舉。希望能夠在此拋磚引玉
Thumbnail
2021-06-26
3
Java 編譯成 WebAssembly 的工具古早的年代想在網頁內埋 Java 還有 Java applet 可以用,在 Java applet 式微後,找來找去比較可以的辦法大概就是編譯成 WebAssembly 了吧! 想要把 Java 編譯成 WebAssembly,有下面三個工具可以選用
Thumbnail
發佈在
Leon的沙龍
2021-06-22
2
Java abstract class和interface的使用時機Java abstract class和interface的使用時機
Thumbnail
2020-08-20
1
Java工程師:肉體的交易明細  給對想當Java工程師又興趣的人類,也許你是學生,又或是你正想轉職,我希望你們都不會因為未知而害怕,這條路沒有那麼困難。
Thumbnail
2020-07-19
10
迎新活動「方格新手村」:新格友註冊加入方格子,知名日料吃到飽餐券送給你! 👉 還不是 vocus 的會員嗎?點此註冊,參與新手村活動 👈 近期站上也出現了不少新格友,為了歡迎各位的加入,「方格新手村」隨之登場! 即日起,只要是新註冊帳號於活動期間內發佈 3 則文章,就有機會抽獎獲得知名日料吃到飽餐券。原格友也可以一起同樂,我們準備了小任
Thumbnail
2024-06-21
97
川普當選,對台股是利多還是利空?川普在槍擊事件中所表現出來的英勇形象,讓他贏得美國總統大選幾乎已成定局。沒想到他隨口的一句話「台灣搶走美國的晶片生意,所以要付保護費」,就讓台積電在短短三天跌掉超過100 元,台股也跌掉1100點以上。台積電、台股會就此一路下跌嗎?未來該如何因應?  
Thumbnail
2024-07-20
52
金融科技與生活美學的融合 CUBE App實踐自我理想最近開啟了研究工作,也開始斜槓著手團購、行銷、洽談業務,慢慢想打造一條屬於自己的道路,而工作忙碌之虞,總忘記自己刷卡消費明細、信用卡繳費,還會忽略了最應該的投資理財,也常常在忙碌奔波中忘記信用卡優惠,國泰世華CUBE App給足了這些功能和服務。 日常生活與數位、科技形影不離,同時也拉近彼此距
Thumbnail
2024-07-11
11
java程式碼 內容是九九乘法表public class MultiplicationTable { public static void main(String[] args) { int size = 9; // 設定九九乘法表的大小 // 雙層迴圈用於生成九九乘法表 f
Thumbnail
2023-05-18
4
Java Script自學經驗回顧來到學期2-3的階段,第一個作業就是打造餐廳清單。原本認為經過電影清單的學習經歷之後,對於打造餐廳清單應該也不會太過困難;沒想到我花了2個月的時間才把作業完整交出去。 在寫餐廳清單的初期,第一個碰到的問題就是首頁無法秀出餐廳評分這個選項。我試著參考其他同學的作品也改了版面的設計,卻始終無法出現餐廳評
Java Bird Coffee|通化街六張犁商圈,小巧而溫馨禾雀咖啡工作室位在通化街尾端,靠近六張犁的禾雀咖啡工作室,質樸的感覺是一家適合假日早晨來待上好一會兒的好去處。 主打自家烘培手沖及義式咖啡,最大特色還有自家製的麵包、甜點輕食,最喜歡吃的莫過於他們的鮮奶吐司。曾經住在這裡好長一段時間,週末去搶個一包可以在家裡烤來吃,是相當幸福的感覺。 冰羅馬咖啡則是我喝過最喜歡的
Thumbnail
2023-02-06
13
Java abstract class 與 interface 的差別abstract class = 抽象類別 interface = 介面 抽象類別與介面都無法建立物件。 1. 使用abstract關鍵字來建立抽象類別,interface關鍵字建立介面。 interface只能繼承interface,且可以繼承多個:
Thumbnail
2022-07-04
3
JAVA繼承篇繼承 在Java中,一個類可以由其他類派生。如果你要創建一個類,而且已經存在一個類具有你所需要的屬性或方法,那麼你可以將新創建的類繼承該類。 利用繼承的方法,可以重用已存在類的方法和屬性,而不用重寫這些代碼。被繼承的類稱為超類(super class),派生類稱為子類(subclass)。 繼承的特
Thumbnail
簡單理解Java的functional interface在學Java的人也許多少人會跟小的一樣不是很理解functional interface到底在幹嘛,也覺得語法很多此一舉。希望能夠在此拋磚引玉
Thumbnail
2021-06-26
3
Java 編譯成 WebAssembly 的工具古早的年代想在網頁內埋 Java 還有 Java applet 可以用,在 Java applet 式微後,找來找去比較可以的辦法大概就是編譯成 WebAssembly 了吧! 想要把 Java 編譯成 WebAssembly,有下面三個工具可以選用
Thumbnail
發佈在
Leon的沙龍
2021-06-22
2
Java abstract class和interface的使用時機Java abstract class和interface的使用時機
Thumbnail
2020-08-20
1
Java工程師:肉體的交易明細  給對想當Java工程師又興趣的人類,也許你是學生,又或是你正想轉職,我希望你們都不會因為未知而害怕,這條路沒有那麼困難。
Thumbnail
2020-07-19
10