maven的使用(基礎1)

来源:https://www.cnblogs.com/1214804270hacker/archive/2018/03/31/8683763.html
-Advertisement-
Play Games

恢復內容開始 這是我第一次寫博客,這個想法源於我的師傅對我的建議,一是與大家一起進步,二是讓自己養成總結的好習慣。 “如果你步入的maven的世界,你便打開了Java的另一扇大門”。 這篇文章是面向沒有接觸過maven的同學們,對於maven玩的很溜的,請指出該文章的不足。 1.什麼是maven? ...


---恢復內容開始---

 

 

  這是我第一次寫博客,這個想法源於我的師傅對我的建議,一是與大家一起進步,二是讓自己養成總結的好習慣。

  “如果你步入的maven的世界,你便打開了Java的另一扇大門”。

  這篇文章是面向沒有接觸過maven的同學們,對於maven玩的很溜的,請指出該文章的不足。

  

導讀

1.什麼是maven?

2.為什麼使用maven?

3.maven的安裝。

4.maven初體驗。

5.maven的基本指令。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.什麼是maven?

  maven就是一種項目對象模型(POM),可以通過一小段描述信息來管理項目的構建。說白了就是通過一個配置文件管理整個項目的build。它是一個主要服務於Java平臺,出自Apach組織的開源的牛逼項目。主要功能是項目構建、依賴管理、項目信息管理。具體關於maven的非技術歷史,這裡不多說,自行百度。

 

2.為什麼使用maven?

  因為maven是一款很強大的構建工具,能夠幫我們自動化構建過程,從清理、編譯、測試、生成報告、打包、部署等等,如果我們純手動,會很浪費時間的,面向對象編程的優點在於模塊化,提高復用性。那麼maven就是這一系列操作的封裝(我是這樣認為的,如有不恰當之處,請指出),如果需要做這些操作,我們只需一個指令,maven就可以替我們完成這一系列操作,從而節省大量無意義的、機械的動作,提高編程效率,而不再是我們進行重覆的設計,重覆的編碼,重覆的文檔 ......(此處省略n+1個文字,沒錯,maven就是這麼強大)

 

3.maven的安裝。

  點擊這裡進入maven下載頁面

  下載完成後,點擊解壓到指定的文件夾。解壓完成後還沒完...還要進行環境變數的配置。

  

  將maven安裝的目錄路徑配置到環境變數,並給變數起名字(這是為了在以後升級時,僅將此處路徑更改即可,而不必改動PATH路徑的變數,我們要充分利用電腦內變數這一機制,這樣可以大量減少我們的操作)。

  

  將變數名配置到PATH的值內,這是為了無論我們在哪個位置都可以使用maven指令。接下來我們隨手打開cmd,輸入mvn -v,這是查看maven的版本,同時也是看一下我們環境變數是否配置成功。如果提示not found,就表示沒有成功,自己再好好琢磨一下吧。

  如果配置成功,我們再dos視窗輸入mvn help:system,這是列印所有java系統屬性和環境變數,在這裡是為了讓maven第一次運行一個任務,將maven在你的電腦上能夠有一個完整的結構。運行完之後,你的個人賬戶的所有應用配置文件夾(也就是C:\Users\%uname%\)下,會出現~.m2文件夾,這個就是maven在你電腦上,屬於你的maven配置的文件夾。

  接下來我們來到你的%MAVEN_HOME%\config目錄里,你會看到這些:

  

  其中,settings.xml將會時我們日後經常訪問的文件,它時maven的配置文件,maven的設置全部來自該配置文件的參數配置。我們剛剛接觸maven,我們只需對它來個初步設置,具體的其他設置我們日後再議。接下來我們將它複製到C:\Users\%uname%\.m2下,然後打開它,你會看到200~300行的代碼,我們初學者只需添加一行代碼即可:

  

  上面已註釋的代碼說的很清楚,這個是maven在你電腦的本地倉庫(就是項目所需的依賴在本地電腦的儲存位置)的配置位置,預設在與該配置文件所在文件夾內的\repository文件夾內。而我不喜歡如此大的文件放在小小的C盤裡,所以放到了D盤。到這裡,我們maven的安裝就完成了。

 

4.maven初體驗

  我們使用Myeclipse創建一個maven項目,(Myeclipse已集成maven),只需在配置裡面把maven設置一下即可

   

  將它設置為自己安裝的maven,儘量不要使用自帶maven(集成不代表自帶)。

  然後File > New > Other > Maven > Maven Object ,先不要點擊Create a simple project,那個以後再議,Next,然後選擇maven-archetype-quickstart,在這裡可以講Archetype理解成Maven項目的模板,例如maven-archetype-quickstart就是最簡單的Maven項目模板,只需提供基本的元素,如groupId,artifactId,version等,它就能生成項目的基本結構及POM文件。接下來的groupId,artifactId,version是maven的基本元素。

  groupId:指的是你屬於哪些組織,在這裡你可以寫你的名字+功能變數名稱歸屬的倒置。

  artifactId:指的是該項目的id。

  version:該項目的版本。

  然後就可以編輯pom.xml的代碼了,如下:

  

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 4     <modelVersion>4.0.0</modelVersion>
 5 
 6     <!-- 本項目基本坐標 -->
 7     <groupId>cn.zuoyu.fistmaven</groupId>
 8     <artifactId>hello-maven</artifactId>
 9     <version>0.0.1-SNAPSHOT</version>
10     <packaging>jar</packaging>
11 
12     <name>hello-maven</name>
13     <url>http://maven.apache.org</url>
14 
15     <properties>
16         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
17     </properties>
18     
19     <build>
20         <plugins>
21         
22         <!-- 控制java版本 -->
23             <plugin>
24                 <groupId>org.apache.maven.plugins</groupId>
25                 <artifactId>maven-compiler-plugin</artifactId>
26                 <version>2.3.2</version>
27                 <configuration>
28                     <source>1.8</source>
29                     <target>1.8</target>
30                 </configuration>
31             </plugin>
32             
33         </plugins>
34     </build>
35 
36     <dependencies>
37         <dependency>
38             <groupId>junit</groupId>
39             <artifactId>junit</artifactId>
40             <version>4.7</version>
41             <scope>test</scope>
42         </dependency>
43     </dependencies>
44 </project>

  然後編寫一個實體類和一個測試類,編寫完之後,我們在該項目的目錄下打開dos視窗,輸入mvn test,可見:

  

  這是maven的測試,成功!

  接下來用maven製作jar包,當然前提是給項目加一個main方法,然後再pom.xml下加入一下代碼,路徑是main方法的路徑,不要弄錯了:

  

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>1.6</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>cn.zuoyu.fistmaven.hello_maven.App</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

  這個是maven里的maven-shade-plugin插件,用於將項目做成可執行的jar文件。

  我們再dos里輸入mvn clean install,會看到:

  

  然後我們打開項目文件夾下的\target文件夾,會看到生成:

  

  其中hello-maven-0.0.1-SNAPSHOT.jar是帶有Main-Class的可運行jar文件,而original-hello-maven-0.0.1-SNAPSHOT.jar是原始的可供其他項目使用的jar文件。

  如果我們在該文件夾打開dos輸入java -jar hello-maven-0.0.1-SNAPSHOT.jar,可見:

  

  可以執行了。

 

 5.maven的基本指令。

  

1. 編譯測試代碼:
mvn test-compile
2. 運行測試:
mvn test
3. 產生site:
mvn site
4. 打包:
mvn package
5. 在本地Repository中安裝jar:
mvn install
6. 清除產生的項目:
mvn clean
7. 生成eclipse項目:
mvn eclipse:eclipse
8. 生成idea項目:
mvn idea:idea
9. 組合使用goal命令,如只打包不測試:
mvn -Dtest package
10. 編譯測試的內容:
mvn test-compile
11. 只打jar包:
mvn jar:jar
12. 只測試而不編譯,也不測試編譯:
mvn test -skipping compile -skipping test-compile
13. 清除eclipse的一些系統設置:
mvn eclipse:clean 
14.查看當前項目已被解析的依賴:
mvn dependency:list

  ok了,今天的maven使用教程就到此為止了!!!

  如有不當地方可以郵件給我:[email protected]

 

---恢復內容結束---

 

 

  這是我第一次寫博客,這個想法源於我的師傅對我的建議,一是與大家一起進步,二是讓自己養成總結的好習慣。

  “如果你步入的maven的世界,你便打開了Java的另一扇大門”。

  這篇文章是面向沒有接觸過maven的同學們,對於maven玩的很溜的,請指出該文章的不足。

  

導讀

1.什麼是maven?

2.為什麼使用maven?

3.maven的安裝。

4.maven初體驗。

5.maven的基本指令。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.什麼是maven?

  maven就是一種項目對象模型(POM),可以通過一小段描述信息來管理項目的構建。說白了就是通過一個配置文件管理整個項目的build。它是一個主要服務於Java平臺,出自Apach組織的開源的牛逼項目。主要功能是項目構建、依賴管理、項目信息管理。具體關於maven的非技術歷史,這裡不多說,自行百度。

 

2.為什麼使用maven?

  因為maven是一款很強大的構建工具,能夠幫我們自動化構建過程,從清理、編譯、測試、生成報告、打包、部署等等,如果我們純手動,會很浪費時間的,面向對象編程的優點在於模塊化,提高復用性。那麼maven就是這一系列操作的封裝(我是這樣認為的,如有不恰當之處,請指出),如果需要做這些操作,我們只需一個指令,maven就可以替我們完成這一系列操作,從而節省大量無意義的、機械的動作,提高編程效率,而不再是我們進行重覆的設計,重覆的編碼,重覆的文檔 ......(此處省略n+1個文字,沒錯,maven就是這麼強大)

 

3.maven的安裝。

  點擊這裡進入maven下載頁面

  下載完成後,點擊解壓到指定的文件夾。解壓完成後還沒完...還要進行環境變數的配置。

  

  將maven安裝的目錄路徑配置到環境變數,並給變數起名字(這是為了在以後升級時,僅將此處路徑更改即可,而不必改動PATH路徑的變數,我們要充分利用電腦內變數這一機制,這樣可以大量減少我們的操作)。

  

  將變數名配置到PATH的值內,這是為了無論我們在哪個位置都可以使用maven指令。接下來我們隨手打開cmd,輸入mvn -v,這是查看maven的版本,同時也是看一下我們環境變數是否配置成功。如果提示not found,就表示沒有成功,自己再好好琢磨一下吧。

  如果配置成功,我們再dos視窗輸入mvn help:system,這是列印所有java系統屬性和環境變數,在這裡是為了讓maven第一次運行一個任務,將maven在你的電腦上能夠有一個完整的結構。運行完之後,你的個人賬戶的所有應用配置文件夾(也就是C:\Users\%uname%\)下,會出現~.m2文件夾,這個就是maven在你電腦上,屬於你的maven配置的文件夾。

  接下來我們來到你的%MAVEN_HOME%\config目錄里,你會看到這些:

  

  其中,settings.xml將會時我們日後經常訪問的文件,它時maven的配置文件,maven的設置全部來自該配置文件的參數配置。我們剛剛接觸maven,我們只需對它來個初步設置,具體的其他設置我們日後再議。接下來我們將它複製到C:\Users\%uname%\.m2下,然後打開它,你會看到200~300行的代碼,我們初學者只需添加一行代碼即可:

  

  上面已註釋的代碼說的很清楚,這個是maven在你電腦的本地倉庫(就是項目所需的依賴在本地電腦的儲存位置)的配置位置,預設在與該配置文件所在文件夾內的\repository文件夾內。而我不喜歡如此大的文件放在小小的C盤裡,所以放到了D盤。到這裡,我們maven的安裝就完成了。

 

4.maven初體驗

  我們使用Myeclipse創建一個maven項目,(Myeclipse已集成maven),只需在配置裡面把maven設置一下即可

   

  將它設置為自己安裝的maven,儘量不要使用自帶maven(集成不代表自帶)。

  然後File > New > Other > Maven > Maven Object ,先不要點擊Create a simple project,那個以後再議,Next,然後選擇maven-archetype-quickstart,在這裡可以講Archetype理解成Maven項目的模板,例如maven-archetype-quickstart就是最簡單的Maven項目模板,只需提供基本的元素,如groupId,artifactId,version等,它就能生成項目的基本結構及POM文件。接下來的groupId,artifactId,version是maven的基本元素。

  groupId:指的是你屬於哪些組織,在這裡你可以寫你的名字+功能變數名稱歸屬的倒置。

  artifactId:指的是該項目的id。

  version:該項目的版本。

  然後就可以編輯pom.xml的代碼了,如下:

  

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 4     <modelVersion>4.0.0</modelVersion>
 5 
 6     <!-- 本項目基本坐標 -->
 7     <groupId>cn.zuoyu.fistmaven</groupId>
 8     <artifactId>hello-maven</artifactId>
 9     <version>0.0.1-SNAPSHOT</version>
10     <packaging>jar</packaging>
11 
12     <name>hello-maven</name>
13     <url>http://maven.apache.org</url>
14 
15     <properties>
16         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
17     </properties>
18     
19     <build>
20         <plugins>
21         
22         <!-- 控制java版本 -->
23             <plugin>
24                 <groupId>org.apache.maven.plugins</groupId>
25                 <artifactId>maven-compiler-plugin</artifactId>
26                 <version>2.3.2</version>
27                 <configuration>
28                     <source>1.8</source>
29                     <target>1.8</target>
30                 </configuration>
31             </plugin>
32             
33         </plugins>
34     </build>
35 
36     <dependencies>
37         <dependency>
38             <groupId>junit</groupId>
39             <artifactId>junit</artifactId>
40             <version>4.7</version>
41             <scope>test</scope>
42         </dependency>
43     </dependencies>
44 </project>

  然後編寫一個實體類和一個測試類,編寫完之後,我們在該項目的目錄下打開dos視窗,輸入mvn test,可見:

  

  這是maven的測試,成功!

  接下來用maven製作jar包,當然前提是給項目加一個main方法,然後再pom.xml下加入一下代碼,路徑是main方法的路徑,不要弄錯了:

  

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>1.6</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>cn.zuoyu.fistmaven.hello_maven.App</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

  這個是maven里的maven-shade-plugin插件,用於將項目做成可執行的jar文件。

  我們再dos里輸入mvn clean install,會看到:

  

  然後我們打開項目文件夾下的\target文件夾,會看到生成:

  

  其中hello-maven-0.0.1-SNAPSHOT.jar是帶有Main-Class的可運行jar文件,而original-hello-maven-0.0.1-SNAPSHOT.jar是原始的可供其他項目使用的jar文件。

  如果我們在該文件夾打開dos輸入java -jar hello-maven-0.0.1-SNAPSHOT.jar,可見:

  

  可以執行了。

 

 5.maven的基本指令。

  

1. 編譯測試代碼:
mvn test-compile
2. 運行測試:
mvn test
3. 產生site:
mvn site
4. 打包:
mvn package
5. 在本地Repository中安裝jar:
mvn install
6. 清除產生的項目:
mvn clean
7. 生成eclipse項目:
mvn eclipse:eclipse
8. 生成idea項目:
mvn idea:idea
9. 組合使用goal命令,如只打包不測試:
mvn -Dtest package
10. 編譯測試的內容:
mvn test-compile
11. 只打jar包:
mvn jar:jar
12. 只測試而不編譯,也不測試編譯:
mvn test -skipping compile -skipping test-compile
13. 清除eclipse的一些系統設置:
mvn eclipse:clean 
14.查看當前項目已被解析的依賴:
mvn dependency:list

  ok了,今天的maven使用教程就到此為止了!!!

  如有不當地方可以郵件給我:[email protected]

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Java開發,基於控制台的四則運算表達式生成和批改,能夠實現分數計算和真分數結果顯示。GitHub:https://github.com/Umbrellazc/JavaCalculation ...
  • 1.需求分析 2.功能設計 基本功能 基本功能 拓展功能 拓展功能 高級功能 高級功能 3.設計實現 4.代碼說明 遞歸查重 遞歸查重 // //代碼功能:遞歸實現二叉樹查重 // //實現思路: //1、先判斷兩個算式答案相不相同,不相同則算式一定不相同。 //2、然後對兩式計算左右兩邊的值是否能 ...
  • 再次重申學習的是某位THU大神,網址貼下 http://nbviewer.jupyter.org/github/lijin THU/notes python/tree/master/ 只貼了我不太熟悉的 適合有其他編程語言基礎的看 Chat 4 list 列表的加法,相當於將兩個列表按順序連接 我們 ...
  • 在閱讀本文前,最好先閱讀以下內容(當然,如果對 Servlet 已經有所瞭解,則可跳過): http://www.cnblogs.com/cyhbyw/p/8682078.html http://www.cnblogs.com/cyhbyw/p/8682307.html http://www.cnb ...
  • 一.數制 分為二進位 八進位 十進位 十六進位 二.C的第一個簡單程式 1.C的基本類型 ①整型:有符號(signed):int 32位 -2147483648~2147483647 short 16位 -32768~32767 long 32位 -2174783648~2174783647 無符號 ...
  • Description 一個無向連通圖,頂點從1編號到N,邊從1編號到M。 小Z在該圖上進行隨機游走,初始時小Z在1號頂點,每一步小Z以相等的概率隨機選 擇當前頂點的某條邊,沿著這條邊走到下一個頂點,獲得等於這條邊的編號的分數。當小Z 到達N號頂點時游走結束,總分為所有獲得的分數之和。 現在,請你對 ...
  • 匿名類對象 創建的類的對象是匿名的。當我們只需要一次調用類的對象時,我們就可以考慮使用匿名的方式創建類的對象。特點是創建的匿名類的對象只能夠調用一次! package day007; //圓的面積 class circle { double radius; public double getArea ...
  • turtle:海龜(海龜庫) Turtle庫是Python語言中一個很流行的繪製圖像的函數庫 使用之前需要導入庫:import turtle • turtle.setup(width,height,startx,starty) -setup() 設置窗體的位置和大小 相對於桌面的起始點的坐標以及視窗 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...