我是如何理解并使用maven的

前言

一直想寫一篇關于Maven的文章,但是不知如何下筆,如果說能使用,會使用Maven的話,一、兩個小時足矣,不需要搞懂各種概念。那么給大家來分享下我是如何理解并使用maven的。

什么是Maven?

Maven是一個用于項目構(gòu)建的工具,通過它便捷的管理項目的生命周期。即項目的jar包依賴,開發(fā),測試,發(fā)布打包,主要管理工作是:依賴管理,項目一鍵構(gòu)建。

為什么要使用Maven

使用maven構(gòu)建的項目,整個項目的體積小
maven項目不需要手動導入jar包,通過在pom.xml中添加依賴,引用依賴會自動從maven倉庫下載jar包,方便快捷。
項目一鍵構(gòu)建:使用maven可以快速地對項目進行編譯--測試--運行--打包--安裝
maven支持跨平臺操作,可在window、linux、mac上使用
maven遵循規(guī)范開發(fā)有利于提高大型團隊的開發(fā)效率,降低項目的維護成本,屬于主流技術(shù),一般公司都會使用maven來構(gòu)建項目

maven倉庫的配置

ps:下載項目引用需要jar包的時候存放的本地路徑

倉庫的分類

本地倉庫
私服(公司的倉庫)
中央倉庫

三個倉庫之間的關系

三者之間的關系是,當我們在項目中依賴一個jar包時,Maven程序會先去本地倉庫中找,如果沒找到就回去私服找,如果還是沒有,最后就回去中央倉庫找。其過程如下圖:
前言

一直想寫一篇關于Maven的文章,但是不知如何下筆,如果說能使用,會使用Maven的話,一、兩個小時足矣,不需要搞懂各種概念。那么給大家來分享下我是如何理解并使用maven的。

什么是Maven?

Maven是一個用于項目構(gòu)建的工具,通過它便捷的管理項目的生命周期。即項目的jar包依賴,開發(fā),測試,發(fā)布打包,主要管理工作是:依賴管理,項目一鍵構(gòu)建。

為什么要使用Maven

使用maven構(gòu)建的項目,整個項目的體積小
maven項目不需要手動導入jar包,通過在pom.xml中添加依賴,引用依賴會自動從maven倉庫下載jar包,方便快捷。
項目一鍵構(gòu)建:使用maven可以快速地對項目進行編譯--測試--運行--打包--安裝
maven支持跨平臺操作,可在window、linux、mac上使用
maven遵循規(guī)范開發(fā)有利于提高大型團隊的開發(fā)效率,降低項目的維護成本,屬于主流技術(shù),一般公司都會使用maven來構(gòu)建項目
maven倉庫的配置

ps:下載項目引用需要jar包的時候存放的本地路徑

倉庫的分類

本地倉庫
私服(公司的倉庫)
中央倉庫
三個倉庫之間的關系

三者之間的關系是,當我們在項目中依賴一個jar包時,Maven程序會先去本地倉庫中找,如果沒找到就回去私服找,如果還是沒有,最后就回去中央倉庫找。其過程如下圖:
前言

一直想寫一篇關于Maven的文章,但是不知如何下筆,如果說能使用,會使用Maven的話,一、兩個小時足矣,不需要搞懂各種概念。那么給大家來分享下我是如何理解并使用maven的。

什么是Maven?

Maven是一個用于項目構(gòu)建的工具,通過它便捷的管理項目的生命周期。即項目的jar包依賴,開發(fā),測試,發(fā)布打包,主要管理工作是:依賴管理,項目一鍵構(gòu)建。

為什么要使用Maven

使用maven構(gòu)建的項目,整個項目的體積小
maven項目不需要手動導入jar包,通過在pom.xml中添加依賴,引用依賴會自動從maven倉庫下載jar包,方便快捷。
項目一鍵構(gòu)建:使用maven可以快速地對項目進行編譯--測試--運行--打包--安裝
maven支持跨平臺操作,可在window、linux、mac上使用
maven遵循規(guī)范開發(fā)有利于提高大型團隊的開發(fā)效率,降低項目的維護成本,屬于主流技術(shù),一般公司都會使用maven來構(gòu)建項目
maven倉庫的配置

ps:下載項目引用需要jar包的時候存放的本地路徑

倉庫的分類

本地倉庫
私服(公司的倉庫)
中央倉庫
三個倉庫之間的關系

三者之間的關系是,當我們在項目中依賴一個jar包時,Maven程序會先去本地倉庫中找,如果沒找到就回去私服找,如果還是沒有,最后就回去中央倉庫找。其過程如下圖:
前言

一直想寫一篇關于Maven的文章,但是不知如何下筆,如果說能使用,會使用Maven的話,一、兩個小時足矣,不需要搞懂各種概念。那么給大家來分享下我是如何理解并使用maven的。

什么是Maven?

Maven是一個用于項目構(gòu)建的工具,通過它便捷的管理項目的生命周期。即項目的jar包依賴,開發(fā),測試,發(fā)布打包,主要管理工作是:依賴管理,項目一鍵構(gòu)建。

為什么要使用Maven

使用maven構(gòu)建的項目,整個項目的體積小
maven項目不需要手動導入jar包,通過在pom.xml中添加依賴,引用依賴會自動從maven倉庫下載jar包,方便快捷。
項目一鍵構(gòu)建:使用maven可以快速地對項目進行編譯--測試--運行--打包--安裝
maven支持跨平臺操作,可在window、linux、mac上使用
maven遵循規(guī)范開發(fā)有利于提高大型團隊的開發(fā)效率,降低項目的維護成本,屬于主流技術(shù),一般公司都會使用maven來構(gòu)建項目
maven倉庫的配置

ps:下載項目引用需要jar包的時候存放的本地路徑

倉庫的分類

本地倉庫
私服(公司的倉庫)
中央倉庫
三個倉庫之間的關系

三者之間的關系是,當我們在項目中依賴一個jar包時,Maven程序會先去本地倉庫中找,如果沒找到就回去私服找,如果還是沒有,最后就回去中央倉庫找。其過程如下圖:


718867-20190622155312737-1546063154.png

本地倉庫的配置

找到已安裝的maven路徑,如:apache-maven-3.3.9\conf 目錄下settings.xml 文件并用notepad++打開,ctrl+F找到localRepository標簽,將路徑設置為D:/repository,如下圖:


718867-20190622154647019-2038876673.png

說明:什么是本地倉庫? 就是是由個人將常用到的jar包放入一個倉庫中,已備自己在項目中使用,可從別人配置好的jar包倉庫拷到自己本地目錄,因為倉庫一般很大,首次下載需要很長一段時間。

配置私服地址

實際工作中,很多項目都會用到maven私服倉庫,一般公司都有統(tǒng)一的maven私服倉庫,由于公司都是統(tǒng)一化管理,這時候我們就要配置統(tǒng)一的私服倉庫,舉例如下:

<mirrors>
    
    <mirror>
      <!--This is used to direct the public snapshots repo in the 
          profile below over to a different nexus group -->
      <id>nexus-public-snapshots</id>
      <mirrorOf>public-snapshots</mirrorOf>
      <url>http://192.168.1.118:8888/nexus/content/repositories/apache-snapshots/</url>
    </mirror>
    <mirror>
      <!--This sends everything else to /public -->
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>
  </mirrors>

pom文件說明

pom.xml文件,一般描述了maven項目的基本信息,比如groupId,artifactId,version等,一個最簡單的pom.xml文件至少需要包含四個元素:modelVersion, groupId, artiffactId和version。

比如一個基本的pom.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.test</groupId> //當前項目的信息
    <artifactId>maven-demo</artifactId>
    <version>1.0-SNAPSHOT</version>//SNAPSHOT(快照)表示該項目還在開發(fā)中。
</project>

其中主要的標簽含義如下:

project:pom.xml 文件中的頂層元素;

modelVersion:指明 POM 使用的對象模型的版本。這個值很少改動。

groupId:指明創(chuàng)建項目的組織或者小組的唯一標識。

GroupId 是項目的關鍵標識,典型的,此標識以組織的完全限定名來定義。比如,org.apache.maven.plugins 是所有 Maven 插件項目指定的 groupId。

artifactId:指明此項目產(chǎn)生的主要產(chǎn)品的基本名稱。項目的主要產(chǎn)品通常為一個 JAR 文件。第二,象源代碼包通常使用 artifactId 作為最后名稱的一部分。典型的產(chǎn)品名稱使用這個格式:

version:項目產(chǎn)品的版本號。Maven 幫助你管理版本,可以經(jīng)??吹?SNAPSHOT 這個版本,表明項目處于開發(fā)階段。

在項目中添加插件,以及對插件的配置

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>//編譯插件
                <version>2.4.3</version>//插件的版本號
                <configuration>//對插件進行配置
                    <source>1.7</source>//源代碼編譯版本
                    <target>1.7</target>//目標平臺編譯版本;
                    <encoding>UTF-8</encoding>//設置插件或資源文件的編碼方式。
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>//執(zhí)行測試用例的插件
                <version>2.17</version>//插件的版本號
                <configuration>//對插件進行配置
                    <suiteXmlFiles>
                        <suiteXmlFile>${suiteXmlFile}</suiteXmlFile>//測試套件執(zhí)行路徑
                    </suiteXmlFiles>

                </configuration>
            </plugin>
        </plugins>
    </build>

總結(jié)

到此,關于maven的入門基礎知識總結(jié)完畢,文章知識點相對繁瑣、復雜,還請讀者多次閱讀和實踐,如有錯誤之處,煩請多指正!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • |-1-更新內(nèi)容[6.從倉庫解析依賴的機制(重要)] 1Maven倉庫作用 倉庫用來存儲所有項目使用到構(gòu)件,在ma...
    zlcook閱讀 6,472評論 0 25
  • Maven的基本了解 什么是Maven? Maven就是Apache下的一個開源項目。它是用純java開發(fā)的。是一...
    Bcome閱讀 3,154評論 0 7
  • 逅弈 轉(zhuǎn)載請注明原創(chuàng)出處,謝謝! 以前的日子 以前我們寫代碼時,jar包都默認放在一個叫 /lib 的目錄下,然后...
    逅弈閱讀 3,210評論 3 45
  • 室友接受了圣誕節(jié)的邀請,心里真是歡喜。 開始進入倒計時,繼續(xù)仰望神。 求主保守我能用愛心和耐心服侍。 晚安,吾愛。
    韓尚小閱讀 152評論 0 1
  • 人的身體,從某種意義上說是由所吃的食物決定的;人的精神,從某種意義上說是由所讀的書籍決定的。在青少年時期走進經(jīng)典名...
    靜聽雨花閱讀 226評論 0 1

友情鏈接更多精彩內(nèi)容