日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

maven 项目管理和构建工具

發布時間:2023/12/10 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 maven 项目管理和构建工具 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

mvn

    • 1. maven 是什么
    • 2. maven能解決什么問題
    • 3. maven 需要配置和下載
    • 4. 使用eclipse創建maven項目
    • 5. xml依賴配置 作用范圍
    • 6. maven的常用命令

1. maven 是什么

Maven 在美國是一個口語化的詞語,代表專家、內行的意思, Maven是一個項目管理工具, 它包含了一個項目對象模型(POM:Project Model), 一組標準集合, 一個項目生命周期(jar包引入、編碼、編譯、單元測試、打包war/jar), 解決大部分的jar包沖突(類的沖突、多個jar包中存在相同的類(相同的類全路徑)), 報錯信息(類找不到),依賴管理系統和一鍵構建用來運行定義在生命周期中插件目標邏輯。

作用:jar包引入、編碼、編譯、單元測試、打包war/jar

2. maven能解決什么問題

項目開發不僅僅是寫寫代碼而已,
期間會伴隨著各種必不可少的事情要做,比如:

  • 我們需要引用各種 jar 包,尤其是比較大的工程,
    引用的 jar 包往往有幾十個乃至上百個,
    每用到一種 jar 包,都需要手動引入工程目錄,
    而且經常遇到各種讓人抓狂的 jar 包沖突,版本沖突。
  • 我們辛辛苦苦寫好了 Java 文件,
    可是只懂 0 和 1 的白癡電腦卻完全讀不懂,
    需要將它編譯成二 進制字節碼。
    好歹現在這項工作可以由各種集成開發工具幫我們完成,
    Eclipse、IDEA 等都可以將代 碼即時編譯。
    當然,如果你嫌生命漫長,何不鋪張,
    也可以用記事本來敲代碼,然后用 javac 命令一 個個地去編譯。
  • 世界上沒有不存在 bug 的代碼,
    計算機喜歡 bug 就和人們總是喜歡美女帥哥一樣。
    為了追求美為了減少 bug,因此寫完了代碼,
    我們還要寫一些單元測試,
    然后一個個的運行來檢驗代碼質量。
  • 再優雅的代碼也是要出來賣的。
    我們后面還需要把代碼與各種配置文件、資源整合到一起,
    定型打包,如果是 web 項目,還需要將之發布到服務器,供人蹂躪使用。
    試想,如果現在有一種工具,可以把你從上面的繁瑣工作中解放出來,
    能幫你構建工程,管理 jar 包,編譯代碼,
    還能幫你自動運行單元測試,打包,生成報表,
    甚至能幫你部署項目,生成Web站點,你會心動嗎?
    Maven 就可以解決上面所提到的這些問題
  • 3. maven 需要配置和下載

    http://maven.apache.org/download.cgi

    • 配置maven的環境變量,jdk的環境變量必須配置好java8 或者 java11以上
    • 一個是中央倉庫的位置改為阿里云的
    • 第二個是指定本地倉庫

    https://www.cnblogs.com/huangting/p/11079087.html
    https://blog.csdn.net/huo920/article/details/82082403

    4. 使用eclipse創建maven項目

    截圖為證


    選好骨架webapp



    導入servlet包

    項目結構的完善

    上面的結構還不是完善的,需要有測試包和寫java代碼的包

    完整的項目結構

    5. xml依賴配置 作用范圍

    比如下面的scope,是provided

    <dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope> </dependency>
    • compile

    默認的scope,表示 dependency 都可以在生命周期中使用
    而且,這些dependencies 會傳遞到依賴的項目中。

    • provided

    跟compile相似,但是表明了dependency 由JDK或者容器提供,
    例如Servlet API和一些Java EE APIs。
    這個scope 只能作用在編譯和測試時,同時沒有傳遞性
    使用這個時,不會將包打入本項目中,只是依賴過來
    使用默認或其他時,會將依賴的項目打成jar包,放入本項目的Lib里

    • runtime

    表示dependency不作用在編譯時,但會作用在運行和測試時

    • test

    表示dependency作用在測試時,不作用在運行時

    6. maven的常用命令

    • clean:清理

    將項目根目錄下target目錄清理掉

    • compile:編譯

    compile 是 maven 工程的編譯命令,
    作用是將 src/main/java 下的文件編譯為 class 文件
    輸出到 target 目錄下

    • test:單元測試

    單元測試類名有要求:XxxTest.java(命令只認Test結尾的)
    將項目根目錄下,src/test/java目錄下的單元測試類都會執行

    • package:打包

    web project —war包
    java project —jar包
    將項目打包,打包到項目更目錄下target目錄

    • install:安裝

    解決本地多個項目共用一個jar包,打包到本地倉庫。
    install 是 maven 工程的安裝命令,
    執行 install 將 maven 打成 jar 包或 war 包發布到本地倉庫。

    找到項目的根路徑,命令行。

    mvn install

    問題:

  • package和install的區別
  • 1. 都會經歷過 清理、編譯、測試、報告、打包2. package會打包生成target文件夾,生成jar或者war包3. install會將本地倉庫放一份

    總結

    以上是生活随笔為你收集整理的maven 项目管理和构建工具的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。