Maven -- OpenDaylight bundle開發(fā)

Maven 簡介


Maven統(tǒng)一開發(fā)規(guī)范與工具投储;統(tǒng)一管理jar包

Maven是一個項目管理工具,它包含了一個項目對象模型 POM(Project Object Model)睹簇,一組標準集合驶悟,一個項目生命周期(Project Lifecycle),一個依賴管理系統(tǒng)(Dependency Management System)竹揍,和用來運行定義在生命周期階段(phase)中插件(plugin)目標(goal)的邏輯敬飒。

POM :?

項目配置文件,POM 包含的項目是使用 Maven 來構建的芬位,它用來包含各種配置信息无拗。POM 也包含了目標和插件。在執(zhí)行任務或目標時昧碉,Maven 會使用當前目錄中的 POM英染。它讀取POM得到所需要的配置信息,然后執(zhí)行目標被饿。多項目pom.xml具有繼承税迷、聚合和依賴等關系

坐標:

構件的唯一標識符,元素有 groupId, artifactId, version, packaging, classifier

< groupId>cn.com.mybook</groupId> ? ? ? ?//模塊化概念锹漱,定義當前項目所屬組名箭养,通常與域名反向一一對應

<artifactId>hello-world</artifactId> ? // 定義項目中的一個Maven項目(模塊),默認生成的構件以artifactId開頭哥牍,例如??hello-world.jar

?<version>0.1.0-SNAPSHOT</version> ?//Maven項目當前所屬的版本

<packaging> jar</packaging> ?//打包方式毕泌,默認為jar,也可為pom, war,xml等 嗅辣,為可選項

生命周期:

clean (構建時進行清理)?

default (構建核心部分:編譯撼泛、測試、打包澡谭、部署) ??

site(生成項目報告)

約定:?

?pom: 項目根目錄下 ? ? ? 項目處理邏輯: /src/main/java ? ? ?項目測試代碼: /src/test/java

依賴管理:

?jar包由groupId愿题、artifactId、version等元素定位

倉庫: ? ??

依賴包(構件、項目)的管理潘酗,含本地倉庫和遠程倉庫

(1)本地倉庫

用于存儲所有項目的依賴關系(插件jar和其他文件杆兵,這些文件被Maven下載)到本地文件夾。默認為: user_home/.m2/repository

Maven_home/conf/settings.xml 修改localRepository可以存在其他目錄下仔夺,示例如下:

(2)中央倉庫?

Maven社區(qū)提供的資源庫琐脏,不需要配置。中央倉庫:http://repo1.maven.org/maven2 缸兔;Maven項目建立后日裙,會檢查pom.xml文件,以確定哪些依賴下載惰蜜,首先搜索本地倉庫獲取資源昂拂,若沒有找到,會在默認的Maven中央倉庫中查找下載抛猖,目前中央倉庫定向到?http://search.maven.org/

(3)遠程倉庫

Maven提供遠程倉庫概念格侯,這是開發(fā)人員的自定義庫包含所需的庫文件或其他項目 jar 文件,默認情況下樟结,Maven可從Maven中央倉庫下載所有依賴關系。但是精算,有些庫丟失在中央存儲庫瓢宦,只有在Java.net或JBoss的儲存庫遠程倉庫中能找到』矣穑可將Java.net和JBoss遠程倉庫信息添加到pom.xml文件中

私服(Nexus):?

https://nexus.opendaylight.org/

https://nexus.opendaylight.org/content/repositories/opendaylight.release/

https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/

Maven倉庫軟件構建流程

創(chuàng)建項目


1. ?Maven 環(huán)境:

? ? ?http://maven.apache.org/download.html? ?環(huán)境變量配置及安裝

? ? 系統(tǒng)環(huán)境:Ubuntu 16.04

? ? 軟件環(huán)境:jdk 1.8 ? ?maven 3.3.9 ? OpenDaylight Carbon SR2 ? ?

? ? ? ? ? ? ? ? ? ? ? ?Mininet ? ?Eclipse/IntelliJ IDEA

? ? 倉庫環(huán)境: 替換 user_home/.m2/settings.xml 為?

? ? ? ? ? ? ? ? ? ? ? ? ?https://raw.githubusercontent.com/opendaylight/odlparent/master/settings.xml

2. 生成項目骨架 :

? ?mvn archetype:generate

? ?archetype 原型快建驮履,以Hello world為例,在當前目錄下構建該項目:

mvn archetype:generate?

- DarchetypeGroupId=org.opendaylight.controller?

- DarchetypeArtifactId=opendaylight-startup-archetype

- DarchetypeRepository= https://nexus.opendaylight.org/content/repositories/opendaylight.release/ ?

- DarchetypeCatalog=remote ?

- DarchetypeVersion=1.3.2-Carbon?

實際是運行插件 maven-archetype-plugin (artifactId)廉嚼,格式為 groupId:archetypeId:version:goal?玫镐, 隸屬于maven官方插件,groupId為 org.apache.maven.plugins怠噪,其中 https://nexus.opendaylight.org/content/repositories/opendaylight.release/ ?為發(fā)行版ODL倉庫

注: ?Maven 3 ? ? ?mvn ?archetype:generate

? ? ? ? ? Maven 2 ? ? ?mvn ?org.archetype.maven.plugins:maven-archetype-plugin:2.0-alpha-5:generate

3. 編譯項目:

cd hello-world

ls

artfactacts/ ? ?cli/ ? deploy-site/ ? features/ ? ?impl/ ? ?it/ ? ?karaf/ ? ?pom.xml

mvn clean install ?-DskipTests -Dmaven.javadoc.skip=true -Dcheckstyle.skip=true

4. 編譯成功恐似,可啟動控制器,項目骨架構建成功

5. 實現(xiàn)Hello world RPC

? ? ? ?https://github.com/vanfence/ODL

? ? ? ?https://docs.opendaylight.org/en/stable-oxygen/developer-guide/developing-apps-on-the-opendaylight-controller.html


推薦:

Maven實戰(zhàn) [D]

https://docs.opendaylight.org/en/stable-carbon/developer-guide/controller.html#

https://wiki.opendaylight.org/view/Main_Page

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末傍念,一起剝皮案震驚了整個濱河市矫夷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌憋槐,老刑警劉巖双藕,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異阳仔,居然都是意外死亡忧陪,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嘶摊,“玉大人延蟹,你說我怎么就攤上這事「洌” “怎么了等孵?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蹂空。 經(jīng)常有香客問我俯萌,道長,這世上最難降的妖魔是什么上枕? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任咐熙,我火速辦了婚禮,結果婚禮上辨萍,老公的妹妹穿的比我還像新娘棋恼。我一直安慰自己,他們只是感情好锈玉,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布爪飘。 她就那樣靜靜地躺著,像睡著了一般拉背。 火紅的嫁衣襯著肌膚如雪师崎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天椅棺,我揣著相機與錄音犁罩,去河邊找鬼。 笑死两疚,一個胖子當著我的面吹牛床估,可吹牛的內容都是我干的。 我是一名探鬼主播诱渤,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼丐巫,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了勺美?” 一聲冷哼從身側響起鞋吉,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎励烦,沒想到半個月后谓着,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡坛掠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年赊锚,在試婚紗的時候發(fā)現(xiàn)自己被綠了治筒。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡舷蒲,死狀恐怖耸袜,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情牲平,我是刑警寧澤堤框,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站纵柿,受9級特大地震影響蜈抓,放射性物質發(fā)生泄漏。R本人自食惡果不足惜昂儒,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一沟使、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧渊跋,春花似錦腊嗡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蒿囤,卻和暖如春客们,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蟋软。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工镶摘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留嗽桩,地道東北人岳守。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像碌冶,于是被迫代替她去往敵國和親湿痢。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內容