開發者學堂課程【項目管理工具Maven學習:開發環境中使用Maven】學習筆記,與課程緊密聯系,讓使用者快速學習知識。
課程位址: https://developer.aliyun.com/learning/course/23
目錄:
一、倉庫
二、Eclipse
1、坐标
關于坐标,首先會想到平面幾何,x,y!!任何一個坐标都能夠唯一辨別該平面中的一點。在實際生活中,将位址看成是一個坐标。省,市,縣,街道,門牌号等等。
Maven的世界中擁有數量巨大的構件,也就是平時用的一些jar,war等檔案。
如果沒有Maven我們隻能去各個官方網站查找下載下傳,去本地搜尋,論壇上發帖詢問。
想要找一個jar包,大量的時間花費在搜尋,浏覽網頁等工作上面。因為沒有統一的規範,是以無法自動化處理。
現在,Maven定義了這樣一組規則:世界上任何一個構件都可以使用Maven坐标唯一辨別,Maven坐标元素包括: groupld 、artifactld、version、packaing.classifier.Maven提供了一個中央倉庫。該中央倉庫包含了世界上大部分流行的開源項目構件。
在開發自己的項目的時候,也需要為其定義适當的坐标,這是Maven強制要求的,在這個基礎上,其他Maven項目才能引用該項目生成的構件。
2、坐标詳解
Maven坐标為各種元件引入了秩序,任何一個元件都必須明确定義自己的坐标。
Groupld:定義目前Maven項目隸屬的實際項目。由于Maven中子產品的概念,是以一個實際項目往往會被劃分為很多子產品。比如spring是一個實際項目,其對應的Maven 子產品會有很多,如spring-core,spring-webmvc 等。
groupId:的表示方法與java包名的表示方法類似,通常與域名反向一一對應。
ArtifactId:該元素定義實際項目中的一個Maven子產品,推薦的做法是使用實際項目名稱作為atifactId的字首。比如: spring-bean。
Version:該元素定義Maven項目目前所處的版本。
Packaging:該元素定義Maven項目的打包方式。
首先,打包方式通常與所生成構件的檔案擴充名對應。Maven預設的打包方式是jat。也可以是war,ear,可執行的jar。
Classifier:該元素用來幫助定義建構輸出的一些附屬構件。比如javadoc和sourcesjar。這是java文檔和源代碼。
3、倉庫的概念
●當第一次運作Maven指令的時候,你需要Intenet連結,因為它需要從網上下載下傳一些檔案。那麼它從哪裡下載下傳呢?它是從Maven預設的遠端庫下載下傳的。
這個遠端倉庫由Maven 的核心插件和可供下載下傳的jar檔案。
●對于Maven來說,倉庫隻分為兩類:本地倉庫和遠端倉庫。當Maven根據坐标尋找構件的時候,它首先會檢視本地倉庫,如果本地倉庫存在,則直接使用;如果本地沒有,Maven就會去遠端倉庫查找,發現需要的構件之後,下載下傳到本地倉庫再使用。
如果本地倉庫和遠端倉庫都沒有,Maven就會報錯。
●提示:遠端倉庫分為三種:中央倉庫,私服,其他公共庫。
中央倉庫是預設配置下,Maven下載下傳jar包的地方。
◆私服是另一種特殊的遠端倉庫,為了節省帶寬和時間,應該在區域網路内架設一個私有的倉庫伺服器,用其代理所有外部的遠端倉庫。
内部的項目還能部署到私服上供其他項目使用。
●私服可以通過nexus來搭建Maven。
●為什麼要搭建nexus私服,原因很簡單,有些公司都不提供外網給項目組人員,是以就不能使用maven通路遠端的倉庫位址,是以很有必要在區域網路裡找一台有外網權限的機器,搭建nexus私服,然後開發人員連到這台私服上,這樣的話就可以通過這台搭建了nexus私服的電腦通路maven的遠端倉庫。
①首先确定環境安裝好maven,jdk等必負的環境
②這些都準備好之後,去下載下傳最新版本的nexus下載下傳位址
:http://www.sonatype.org/nexus/go
本地安裝的是nexus-22-01-bundle,最新的版本是nexus-2.4.0-09-bundle
③打開目錄
nexus-2.4.0-09-bundlenexus-24.0-09\binsw這個目錄下面你會發現有很多系統版本的nexus環增。

Eclipse 是一個開放源代碼的、基于Java的可擴充開發平台。
就其本身而言,它隻是一個架構和一組服務,用于通過插件元件建構開發環境。幸運的是,Eclipse 附帶了一個标準的插件集,包括Java開發工具(Java Development Kit,JDK)。
雖然大多數使用者很樂于将Eclipse 當作Java 內建開發環境(IDE)來使用,但Eclipse 的目标卻不僅限于此。Eclipse 還包括插件開發環境(Plug-in Development Environment,PDE),這個元件主要針對希望擴充Eclipse 的軟體開發人員,因為它允許他們建構與Eclipse 環境無縫內建的工具。
由于Eclipse 中的每樣東西都是插件,對于給Eclipse 提供插件,以及給使用者提供一緻和統一的內建開發環境而言,所有工具開發人員都具有同等的發揮場所。
這種平等和一緻性并不僅限于 Java 開發工具。盡管Eclipse 是使用Java語言開發的,但它的用途并不限于Java 語言;例如,支援諸如C/C++、COBOL、PHP等程式設計語言的插件已經可用,或預計将會推出。Eclipse 架構還可用來作為與軟體開發無關的其他應用程式類型的基礎,比如内容管理系統。
基于Eclipse 的應用程式的一個突出例子是IBM Rational Software Architect,它構成了 IBMJava 開發工具系列的基礎。