
這樣,maven就安裝完成了,就是這么簡單。接下來我們先來了解一下Maven是如何來管理項目的。三、Maven依賴管理前面講了,Maven最核心的就是對依賴jar包的管理,那么它是通過什么方式來進行管理的呢?Maven要求每一個jar包都必須明確定義自己的坐標,Maven就是通過這個坐標來查找管理這些jar包的。在Maven中,一個jar包的坐標是由它的groupId、artifactId、version這些元素來定義的。例如:<groupId>org.apache.struts</groupId><artifactId>struts2-core</artifactId><version>2.3.8</version><packaging>jar</packaging>groupId:表明其所屬組織或公司及其所屬項目,命名規則為組織或公司域名反轉加項目名稱。artifactId:項目的模塊名,通常與實際項目名稱一致。模塊的命名通常為項目名前綴加模塊名。version:當前項目的版本號。packaging:定義項目的打包方式,可選值有jar、war、pom。默認為jar注::一個組織或公司都會有很多的項目,而每個項目下都會劃分多個模塊,在開發中我們可以靈活選擇依賴某個模塊。而Maven管理的jar包基本都是模塊性質的項目構建出的jar包。所以,artifactId通常都是模塊名,而不是項目名稱。項目名稱是和組織名稱組合作為groupId來使用的。上面的配置定義了一個Maven項目的坐標,而如果在項目中依賴這個項目時,同樣是利用它的坐標來指定依賴。例如:<PRoject>...<dependencies><dependency><groupId>org.apache.struts</groupId><artifactId>struts2-core</artifactId><version>2.3.8</version></dependency></dependencies>...</project>Maven的配置文件中dependencies元素包含了所有依賴的jar包,每一個jar包依賴使用dependency元素定義。在聲明一個jar包依賴時,除了指定groupId、artifactId、version這三項基本坐標外,還可以使用使用以下元素進行配置:scope元素:指定依賴的范圍exclusions元素:排除傳遞性依賴Maven有以下幾種依賴范圍:compile:編譯依賴范圍(默認值),依賴在編譯、測試、運行期間都有效。test:測試依賴范圍,只對測試的classpath有效,在編譯或運行時無法使用指定為test的依賴包。provided:已提供的依賴范圍,只對編譯和測試的classpath有效,運行期間不會使用這個依賴。例如servlet-api,在運行時容器已經提供,不需要再重復引入。runtime:運行時依賴范圍,編譯時無效,只在測試和運行時使用這個依賴。system:系統依賴范圍,和provided范圍一致,但是provided是使用容器提供依賴,system是使用系統提供依賴,需要指定依賴文件路徑。傳遞性依賴,是指依賴包對其他包的依賴,比如,我們依賴struts2-core,而strtus2-core需要依賴xwork-core、ognl等,Maven會將這些傳遞性依賴同時引入項目之中。這也是Maven的一大優點,簡化了我們對jar包依賴的管理。而有時我們希望替換某個傳遞性依賴時,就需要使用exclusions排除掉這個傳遞性依賴,然后再添加我們自己要替換的依賴包。例如,如下一個Maven的配置文件,pom.xml:cd%~dp0call mvn eclipse:clean eclipse:eclipsepause運行該文件,就會自動根據該目錄下的pom.xml生成該項目的eclipse開發環境配置。在后面的教程及示例中我都是使用Maven來構建的,pom.xml的示例可以參考我后面的教程和代碼示例。新聞熱點
疑難解答