maven-约定优于配置
? ? ? ? ? ? ?maven是一個高度自動化的構建工具,在很多的項目開發過程中都用到maven,maven主要負責管理項目依賴關系以及jar包。運用了“約定優于配置”的思想,從而提高開發效率和管理秩序。下面談一下maven中用到的幾個重要概念。
? ? ?一、坐標
? ? ? ?什么是坐標?
? ? ? ? ? ? ?在幾何學上,坐標就是用來確定平面上唯一一個點的標識,而在maven中,坐標用來表示尋找到某個包的標識。
? ? ? ?坐標的組成?
? ? ? ? ? ? ?幾何學上,坐標可能有x,y,z.....組成,而在maven中有
? ? ? ? ? ? ??groupId:組織標識(包名)
? ? ? ? ? ? ??artifactId:項目名稱
? ? ? ? ? ? ??version:項目的當前版本
? ? ? ? ? ? ??packaging:項目的打包方式,最為常見的jar和war、earr三種
? ? ? ? ??
? ? ? 二、依賴管理
? ? ? ? ?配置元素? ? ? ? ? ? ?
<span style="color:#ff0000;"><dependencies></span><!-- test --><span style="color:#ff0000;"><dependency></span><<span style="color:#ff0000;">groupId</span>>junit</groupId><<span style="color:#ff0000;">artifactId</span>>junit</artifactId><<span style="color:#ff0000;">version</span>>${junit-version}</version><<span style="color:#ff0000;">scope</span>>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${org.springframework-version}</version><scope>test</scope></dependency>? ? ? ? 依賴范圍?
? ? ? ? ? ? ? ? ? 1、test:測試依賴有效
? ? ? ? ? ? ? 2、compile:默認編譯依賴范圍
? ? ? ? ? ? ? 3、provided:已提供依賴范圍
? ? ? ? ? ? ? 4、runtime:運行時提供
? ? ? ? ?傳遞性依賴?
? ? ? ? ? ? ? 我們用到的很多jar,比如struts.jar等,他們的加載還需要依賴其他jar,而可能某個jar,依賴與struts.jar,這個時候,這三個jar直接就形成了傳遞依賴,就想繼承一樣,a繼承于b,b繼承于c,則a繼承于c,當然對于依賴的傳遞,主要針對compile作用域傳遞
? ? ? 三、倉庫管理
? ? ? ? ? ? ? ? ? ? 倉庫:放糧食的地兒,自己的倉庫,縣城的倉庫,國家的倉庫,很形象的說明了倉庫的意義,它就是用來放不同版本的jar已經他們之間依賴關系的。
? ? ? ? ? ? ? 自家的倉庫(本地倉庫):自己喜歡吃啥就放啥
? ? ? ? ? ? ? 縣城的倉庫(私服):放我們縣人都喜歡吃的,南方人放米,北方人放面
? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ?國家的倉庫(中央倉庫):放中國人愛吃的,大米白面,面包少來,芝士少來。
? ? ? 四、生命周期
? ? ? ? ?什么事生命周期?
? ? ? ? ? ? ? 從呱呱墜地,到長大成人,懂得人情世故、為人處世,再到駕鶴西去,就是一個生命周期,在maven中,就是項目清理,初始化,編譯,打包,測試,部署等幾乎所有構建步驟。
? ? ? ? ?三大生命周期?
? ? ? ? ? ? ? Maven有三套相互獨立的生命周期,請注意這里說的是"三套",而且"相互獨立",這三套生命周期分別是:?
? ? ? ? ? ? ? 1、Clean Lifecycle 在進行真正的構建之前進行一些清理工作。
? ? ? ? ? ? ? 2、 Default Lifecycle 構建的核心部分,編譯,測試,打包,部署等等。
? ? ? ? ? ? ? 3、Site Lifecycle 生成項目報告,站點,發布站點。?
? ? ? ? ? ?
? ? ? ? ? ??
? ? ? ? ? ? ?
總結
以上是生活随笔為你收集整理的maven-约定优于配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CserialPort类的简单用法
- 下一篇: 如何和女生聊天不进入友谊区