摘要:先創建一個項目選擇填寫相關配置和和這三個元素定義了一個項目的基本坐標,在的世界,任何的或者都是基于這些基本的坐標區分的。編寫單元測試編譯完成后,我們要開始測試了,創建的項目已經集成了的依賴了,如果沒有,可以自己手動添加后再執行。
先創建一個maven項目:
選擇quikcstart:
填寫相關配置
gruop id 和 artifact id 和version這三個元素定義了一個項目的基本坐標,在Maven的世界,任何的jar,pom或者war都是基于這些基本的坐標區分的。
Group Id:定義項目組
Artifact Id:定義了當前項目組中唯一的id
Version:顧名思義,指定當前的版本
生成的maven項目和pom.xml
接下來修改一下app.java的代碼
![clipboard.png](/img/bV9ApR) package com.will.hello_world; /** * Hello world! * */ public class App { public static void main( String[] args ) { System.out.println( new App().sayHello() ); } public String sayHello(){ return "Hello Maven!"; } }
此時,target目錄下還是空的。
當我們右鍵項目,點擊debug as -> maven clean,控制臺會輸出以下內容,這告訴我們,clean動作,maven會先清理輸出目錄target,即刪除該目錄。
此時,右鍵Pom.xml選擇run as->maven build
goals輸入compile,然后點擊run,控制臺此時會打出
說明maven已經執行了編譯任務,并且把編譯后的class文件放在了工作空間指定工作目錄后的target目錄下。
編寫單元測試
編譯完成后,我們要開始測試了,創建的maven項目已經集成了junit的依賴了,如果沒有,可以自己手動添加后再執行maven update。
4.0.0 com.will hello-world 0.0.1-SNAPSHOT jar hello-world http://maven.apache.org UTF-8 junit junit 3.8.1 test
上述pom代碼中還有scope屬性,如果scope屬性為test,表示該依賴只對測試有效。如果不聲明依賴,那么該依賴對主代碼和測試都有效。
有了測試依賴,就可以開始編寫測試類了,在src/test/java目錄下編寫測試類
完成測試用例后,點擊maven test,控制臺輸出以下內容,失敗和警告都為0,說明我們的測試通過了。
打包和運行
將項目進行編譯和測試之后,下一個重要步驟就是打包了,pom中沒有指定打包的類型,使用默認的打包類型jar。
點擊maven build->goals中填寫package,點擊run,eclipse就會幫我們進行打包了。
類似的,執行打包前,maven會自動的幫我們執行編譯、測試等操作,可以看到,此時,我們已經將該項目打包成了hello-world-0.0.1-SNAPSHOT.jar的Jar包了,如果有需要的話,就可以復制這個Jar文件到其他項目的classpath文件中使用這個helloworld類了。
又或者你想在本地的其他maven項目中使用這個jar文件,此時你還需要執行一步操作,maven install,該指令會將輸出的jar包安裝到你本地的maven倉庫中,其他maven項目就可以使用了。
運行jar文件
此時,我們在jar包所在的文件夾執行java -jar jar包名
報了如下錯誤
因為我們生成的jar包中是帶有main方法的,帶有main方法的類信息不會添加到mainfest中(可以使用解壓工具查看Jar包)
此時我們可以用maven-shade-plugin插件,在pom.xml中添加如下代碼
org.apache.maven.plugins maven-shade-plugin 2.4.1 package shade com.will.hello_world.App
再重新執行maven clean和maven build 選擇package命令,在target目錄下新增了一個jar包帶有shade后綴,
此時執行java -jar x.jar
執行成功!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/69251.html
摘要:在之前,十個項目可能有十種構建方式,但通過,所有項目的構建命令都是簡單一致的。有利于促進項目團隊的標準化。手工勞動往往意味著低效,意味著容易出錯。這在很大程度上消除了重復。默認情況下,該文件夾下放置了本地倉庫。學習實戰許曉斌著 Introduction Maven是一個異常強大的構建工具,能夠幫我們自動化構建過程,從清理、編譯、測試到生成報告,再到打包和部署。通過Maven,我們只需要...
摘要:項目構建基礎從屬于筆者的現代開發基礎系列文章,介紹了的歷史背景與多種構建工具對比,以及的基本配置安裝與使用本文涉及的參考資料聲明在學習與實踐資料索引以及學習與資料索引。 Maven 項目構建基礎從屬于筆者的現代 Java 開發基礎系列文章,介紹了 Maven 的歷史背景與多種構建工具對比,以及 Maven 的基本配置安裝與使用;本文涉及的參考資料聲明在 Java 學習與實踐資料索引以及...
摘要:重度強迫癥患者取消大小寫敏感,讓自動完成更齊全。如何為當前項目工程添加多個模塊啊答對著工程右鍵選擇通常選擇,如圖寫在最后歡迎關注喜歡和點贊后續將推出更多的工具集教程,敬請期待。公眾號回復面試,領取面試實戰學習資源。 showImg(https://segmentfault.com/img/remote/1460000018862588); 前言:IntelliJ IDEA 如果說Int...
摘要:會警告該插件未簽名。以上命令告訴創建一個名為的項目,使用包。的工具使從部署應用非常方便。域名構成了分配給應用的的一部分。這將為我們創建一個應用容器,自動配置和。同時將創建一個私有的倉庫并克隆到本地。 編者注:我們發現了有趣的系列文章《30天學習30種新技術》,正在翻譯,一天一篇更新,年終禮包。下面是第 17 天的內容。 今天的30天學習30種新技術挑戰,我決定學習一下JBoss ...
閱讀 1381·2021-10-08 10:04
閱讀 2696·2021-09-22 15:23
閱讀 2727·2021-09-04 16:40
閱讀 1179·2019-08-29 17:29
閱讀 1496·2019-08-29 17:28
閱讀 2994·2019-08-29 14:02
閱讀 2223·2019-08-29 13:18
閱讀 847·2019-08-23 18:35