国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Maven就是這么簡單

leonardofed / 2848人閱讀

摘要:軟件項目的管理就會變得簡單很多。比如說的驅動程序,,在是獲取不到的,就需要手工上傳到里是倉庫組,在里沒有這個概念,是特有的。

什么是Maven
Maven是一個采用純Java編寫的開源項目管理工具, Maven采用了一種被稱之為Project Object Model (POM)概念來管理項目,所有的項目配置信息都被定義在一個叫做POM.xml的文件中..

Maven是一款跨平臺的項目管理工具,是一個開源的項目...

Maven主要服務于基于Java平臺的項目構建、依賴管理和項目信息管理...

POM怎么理解呢???

我們使用Java是面向對象編程,對象就是我們的類

而Maven是面向項目,把我們的項目看做成是一個對象來進行管理

為什么要使用Maven??

在沒有使用Maven之前,我們的jar包是不是非常雜亂???看一下我存放jar包的地方

在沒有學習Maven之前,我還想過把這些jar包一一整理出來,萬一硬盤壞了,那我的jar包又要去重新找了..而且由于jar包版本的問題,已經吃過不少虧...這就需要大量時間去整理jar包了...

曾經想手動打jar包,結果Intellij idea好像不太支持這種功能??【我還沒找到】....于是只能依靠原生的jar 命令去打jar包了,過了一陣子,想重新打jar包的時候,又忘記命令了...非常苦惱...

而我們的Maven就非常好地解決了上面這兩種情況了,當然了,Maven的功能并不是只有這么一丟丟,我只是舉了兩個小例子而已...隨著我們的學習,你將會看到Maven的強大之處...

Maven可以管理項目的整個聲明周期,包括清除、編譯,測試,報告、打包、部署等等。

自動構建項目

軟件開發: 可行性分析、需求分析、軟件設計、軟件開發、發布、運維

軟件構建: 軟件已經開發完畢,需要構建成一個產品進行發布

構建步驟:

清除--> 編譯-->測試-->報告-->打包(jarwar)-->安裝-->部署到遠程 maven可以通過一個命令實現自動構建軟件項目

Maven擁有“約定優于配置“這么一個理念,也就是說,把一些規范約定下來,人們就這么用!如果我們事先約定好所有項目的目錄結構,標準開發過程(編譯,測試) , 所有人都遵循這個約定。軟件項目的管理就會變得簡單很多。比如:如何過馬路(紅燈停綠燈行),如何開門,關門等。

安裝Maven

去官網下載Maven軟件,解壓過后就算安裝完畢了...

配置環境變量

因為Maven是由Java編寫的,因此想要使用Maven,首先要配置Java的環境變量...

檢測安裝Maven是否成功,在控制臺上打上 mvn -version就行了...

Maven目錄結構

?bin:含有mvn運行的腳本

?boot:含有plexus-classworlds類加載器框架

?conf:含有settings.xml配置文件

?lib:含有Maven運行時所需要的java類庫

?Settings.xml 中默認的用戶庫: ${user.home}/.m2/repository[通過maven下載的jar包都會存儲到指定的個人倉庫中]

?Maven默認倉庫下載地址在: maven的lib目錄下maven-model-builder-3.0.4.jar的pom.xml中

在我們Maven中,有本地倉庫這么一個概念,我們可以在settings.xml配置文件中修改本地倉庫的位置,比如我把本地倉庫放到桌面上

IDEA下使用Maven

詳情可參照詳細的Maven教程---Idea環境下

值得追加的是:在修改web.xml路徑的時候,那篇博文并沒有給出絕對的路徑...這里可能有些人不知道怎么寫。我給出來參考

X:UsersozcDesktopzhongfucheng3srcmainwebappWEB-INFweb.xml
maven術語

在我們上一篇中已經知道了在Intellij idea下是如何使用Maven的了,創建出來的目錄結構是這樣子的:

上面的目錄結構就是Maven所謂的”約定“,我們使用Maven來構建Java項目,都是這種目錄結構的...

接下來我們來了解一下Mavaen一些常用的術語

倉庫

本地倉庫

Maven會把我們項目所構建出來的jar包等等資源存放在本地倉庫中。當我們需要jar包的時候,Maven第一時間也是去本地倉庫中尋找jar包

中心倉庫:

當Maven在本地倉庫和私服找不到我們需要的jar包的時候,就去中心倉庫中幫我們下載對應的jar包。那Maven怎么知道去哪里下載呢??其實Maven已經配置好的了

apache-maven-3.2.1libmaven-model-builder-3.2.1orgapachemavenmodel下的POM.xml文件中已經配置好了

  
    
      central
      Central Repository
      http://repo.maven.apache.org/maven2
      default
      
        false
      
    
  

  
    
      central
      Central Repository
      http://repo.maven.apache.org/maven2
      default
      
        false
      
      
        never
      
    
  

私有服務器

存儲一些jar包的服務器,由于本地倉庫不可能擁有大部分的jar包,一個團隊要去開發,免不了總是去中心倉庫下載,這就非常耗費時間了。如果私有服務器擁有這些jar包,那么每臺電腦就不用去中心倉庫中下載了...

maven軟件構建的生命周期

軟件的生命周期就是以下

- 清除--> 編譯-->測試-->報告-->打包(jarwar)-->安裝-->部署

maven生命周期命令插件

當我們使用idea環境下開發,maven生命周期的插件就非常清晰了...

maven坐標

坐標的組成: groupId + artifactId+ version

groupId:組id ,機構名,公司名:好比公司的id,或者是公司包名
alibaba ——-》高德--》5.01版本

artifactId:構建物id ,產品名或者產品的id

version :版本號

jar包組成:
artifactId-version.jar

pom.xml介紹

pom.xml介紹 :project object model 項目對象模型 ,它是maven核心配置文件

當我們把上面的術語了解完以后,對下面pom.xml配置文件就不會感到陌生了。



    4.0.0

    zhongfucheng3
    zhongfucheng3
    1.0-SNAPSHOT


如果我們想要我們的項目能夠有Junit測試的開發包,我們只要指定對應的jar包依賴就行了..

scope應用范圍有test、compile等等,默認是compile,那么test和compile有什么區別呢?

間接依賴問題 :依賴的jar包必須是 compile 范圍,假如是test范圍,則發布的jar包不會包含test范圍依賴的jar包,和依賴關系

test
Maven【私有倉庫、上傳jar包、引用私服jar包、上傳本地項目到私服】

前面已經說過了,我們使用Maven的使用,如果需要導入相對應的jar包,Maven首先會在我們的本地倉庫中尋找--->私有倉庫--->中心倉庫...

然而,我們的本地倉庫常常沒有想要的jar包的,而經常去中心倉庫下載這就非常浪費時間和資源了...因此我們一般都有一個私有倉庫...

另外有些公司都不提供外網給項目組人員,因此就不能使用maven訪問遠程的倉庫地址,所以很有必要在局域網里找一臺有外網權限的機器,搭建nexus私服,然后開發人員連到這臺私服上,這樣的話就可以通過這臺搭建了nexus私服的電腦訪問maven的遠程倉庫

準備步驟

我們使用的是nexus框架來搭建私服,它屬于sonatype 機構的開源框架,用該框架架設maven 私有服務器

Nexus環境搭建

第一步:下載nexus-webapp-1.9.2.4.war包,然后拷貝到tomcat下的webapps目錄中

第二步:啟動tomcat 默認登錄賬戶密碼為: admin admin123

第三步:訪問http://localhost:8080/項目名稱/

tomcat會自動解析war包,然后就自動下載插件...

訪問該項目,進到首頁

登陸...

倉庫介紹

proxy:是遠程倉庫的代理。比如說在nexus中配置了一個central repository的proxy,當用戶向這個proxy請求一個artifact,這個proxy就會先在本地查找,如果找不到的話,就會從遠程倉庫下載,然后返回給用戶,相當于起到一個中轉的作用

Hosted:是宿主倉庫,用戶可以把自己的一些構件,deploy到hosted中,也可以手工上傳構件到hosted里。比如說oracle的驅動程序,ojdbc6.jar,在central repository是獲取不到的,就需要手工上傳到hosted里

Group:是倉庫組,在maven里沒有這個概念,是nexus特有的。目的是將上述多個倉庫聚合,對用戶暴露統一的地址,這樣用戶就不需要在pom中配置多個地址,只要統一配置group的地址就可以了右邊那個Repository Path可以點擊進去,看到倉庫中artifact列表。不過要注意瀏覽器緩存。我今天就發現,明明構件已經更新了,在瀏覽器里卻看不到,還以為是BUG,其實是被瀏覽器緩存了

virtual:也是中央倉庫鏡像,支持M1老版本

每個倉庫的作用:

3rd party: 無法從公共倉庫獲得的第三方發布版本的構件倉庫

Apache Snapshots: 用了代理ApacheMaven倉庫快照版本的構件倉庫

Central: 用來代理maven中央倉庫中發布版本構件的倉庫

Central M1 shadow: 用于提供中央倉庫中M1格式的發布版本的構件鏡像倉庫

Codehaus Snapshots: 用來代理CodehausMaven 倉庫的快照版本構件的倉庫

Releases: 用來部署管理內部的發布版本構件的宿主類型倉庫

Snapshots:用來部署管理內部的快照版本構件的宿主類型倉庫

倉庫組是一個虛擬的概念,就是通過對實體倉庫(proxy、hosted)進行聚合, 對外暴露一個統一的地址這里要注意的是,放到左邊的倉庫,才是會被聚合的倉庫

倉庫組的配置順序:

上傳jar包到私服

直接通過網站上傳,把桌面上的pig-0.12.1.jar上傳到私有服務器中

再次查看的時候,已經上傳上去了

從私服依賴jar包

在pom.xml文件配置私服的路徑、組id、版本等等


    
    
    
        
            
                true
            
            public
            public
            http://localhost:8080/nexus-2.6.2/content/groups/public/
        
    

    
    
    
        
            never
        
        
            true
        
        public
        public
        http://127.0.0.1:8080/nexus-2.6.2/content/groups/public/
    
    

在本地倉庫中也把私服的jar包下載下來了

把本地項目發布到私服

server的配置可以在Maven的settings.xml中寫上

  
 
     
      releases
      admin
      admin123
    
    
      snapshots
      admin
      admin123
    
    

值得注意的是:你得留意你用的是哪個Maven,是你自己下載的Maven還是使用Idea集成的Maven,如果沒有配置的話,那么就會出現401錯誤


  
  
  
  snapshots
  http://127.0.0.1:8080/nexus-2.6.2/content/repositories/snapshots/
  
  
  
    releases
  http://127.0.0.1:8080/nexus-2.6.2/content/repositories/releases/
  

再次查看倉庫組

總結

Maven能夠很好地管理我們的項目,還能夠管理我們的jar包。在構建項目的時候十分方便。

安裝Maven需要配置JAVA_HOME環境變量。

Settings.xml 配置了我們的本地倉庫位置。

過度去中心倉庫去加載jar包的話,會非常影響性能的。我們搭建一個私有倉庫的話,如果私有倉庫有對應的jar包,就可以直接在私有倉庫中找了。

學會如何在私有倉庫的頁面上上傳jar包上去

學會如何在項目上關聯私有倉庫的jar包

學會如何把本地項目上傳到私有倉庫中。

如果文章有錯的地方歡迎指正,大家互相交流。習慣在微信看技術文章,想要獲取更多的Java資源的同學,可以關注微信公眾號:Java3y

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/68706.html

相關文章

  • 關于Maven

    摘要:之前雖然一直用,但比較依賴于的。什么是是使用開發的項目構建工具,至于它的作用網上相關的文章數不勝數,在此也不再累述。總結至此介紹了的基本使用方式,以上的功能在中也有很好的支持。 之前雖然一直用Maven,但比較依賴于IDE的Maven-Plugins。最近抽了點時間決定系統得學習一下。 什么是Maven Maven是使用Java開發的項目構建工具,至于它的作用網上相關的文章數不勝數,在...

    Amos 評論0 收藏0
  • Maven學習筆記

    摘要:學習筆記先生,您在寫代碼嗎不,我們正在完成一項偉大的工程。于是打算重新學習一下。中央倉庫鏡像為了分擔中央倉庫的流量,提升用戶的訪問速度。生成項目報告,站點,發布站點。修改源碼后也需要逐個手動進行操作。 maven學習筆記 先生,您在寫代碼嗎? 不,我們正在完成一項偉大的工程。 前言 在剛學maven時,我就把maven當作一個引入jar包的工具而已,以前是自己下載jar包,現在是只用...

    tomlingtm 評論0 收藏0
  • IDEA多module項目maven依賴的一些說明

    摘要:如果子模塊不聲明依賴的使用,即使該依賴在父中的中聲明了,也不會產生任何效果。 不管eclipse有沒有被被時代拋棄,反正是被我拋棄了,因為IDEA是真的好用 現在公司的項目基本都是基于maven的多module項目,controller,service,model,dao等都被分成了不同的module,這樣做當然也是為了解耦。 這些module可根據需要在pom.xml配置來打成war...

    pkwenda 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<