一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是OpenDaylight的Maven

汽車電子技術(shù) ? 來(lái)源:碼農(nóng)與軟件時(shí)代 ? 作者:碼農(nóng)與軟件時(shí)代 ? 2023-02-14 15:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

新項(xiàng)目開(kāi)發(fā)的通常做法:項(xiàng)目經(jīng)理從團(tuán)隊(duì)抽調(diào)1名開(kāi)發(fā)人員進(jìn)行項(xiàng)目工程框架的搭建,剩余的開(kāi)發(fā)人員先研究項(xiàng)目需求,并著手準(zhǔn)備業(yè)務(wù)邏輯的設(shè)計(jì)。本地項(xiàng)目工程搭建后,上傳SVN或git配置庫(kù),告知其他開(kāi)發(fā)人員可以下載項(xiàng)目工程,啟動(dòng)開(kāi)發(fā)了。開(kāi)發(fā)運(yùn)維人員便進(jìn)行代碼的編寫、編譯、測(cè)試以及打包等系列操作。我們將這一系列的操作稱為“構(gòu)建”。

構(gòu)建的實(shí)質(zhì)是將我們編寫的Java源文件、XML配置文件、HTML頁(yè)面、CSS和JS文件等,通過(guò)某種方式組合在一起,變?yōu)榭蓪?duì)外服務(wù)項(xiàng)目的過(guò)程。同時(shí),構(gòu)建過(guò)程中很多都是沒(méi)有技術(shù)含量且重復(fù)的工作,手工操作很無(wú)趣且太麻煩。最好能夠由手工模式轉(zhuǎn)變?yōu)樽詣?dòng)化模式,這樣可以大大節(jié)省時(shí)間。

構(gòu)建的工具主要有:

(1). Make;

(2). Ant(Another Neat Tool):另一個(gè)整潔的工具;

(3). Maven;

(4). Gradle;

本文將介紹在SDN控制器OpenDaylight中使用的Maven工具。

一、Maven

Maven是Apache組織中一個(gè)開(kāi)源項(xiàng)目,主要用于基于Java平臺(tái)的項(xiàng)目構(gòu)建、依賴管理和項(xiàng)目信息管理。下面來(lái)看下其幾個(gè)核心概念:

1.坐標(biāo)

坐標(biāo)用于唯一標(biāo)識(shí)構(gòu)件(如jar,war等),坐標(biāo)的元素包括groupId、artificatId、version、packaging、classifier,其中前3個(gè)是必須定義的,后2個(gè)是可選的。

①groupId:定義當(dāng)前Maven項(xiàng)目隸屬的實(shí)際項(xiàng)目。

②artificatId:定義實(shí)際項(xiàng)目中的一個(gè)Maven項(xiàng)目(模塊),建議使用實(shí)際項(xiàng)目名稱作為其前綴。

③version:定義Maven項(xiàng)目當(dāng)前所處的版本。

④packaging:定義Maven項(xiàng)目的打包方式。

⑤classifier:幫助構(gòu)建輸出的一些附屬構(gòu)件。

2.生命周期

如前所述,軟件人員每天的工作:項(xiàng)目的清理、初始化、編譯、測(cè)試、打包、集成測(cè)試、驗(yàn)證、部署和站點(diǎn)生成等等,Maven對(duì)這些工作統(tǒng)一抽象為三個(gè)相互獨(dú)立的生命周期:clean、default和Site。其中,default生命周期的目的是構(gòu)建項(xiàng)目,而site生命周期的目的是建立項(xiàng)目站點(diǎn)。下面詳細(xì)說(shuō)明每種生命周期:

(1).clean生命周期的目的是清理項(xiàng)目,包含三個(gè)階段:

①pre-clean執(zhí)行一些清理前需要完成的工作;

②clean清理上一次構(gòu)建生成的文件;

③post-clean執(zhí)行一些清理后需要完成的工作。

(2).default生命周期的目的是構(gòu)建項(xiàng)目,定義構(gòu)建時(shí)所需要執(zhí)行的所有步驟:

圖片

其中重要階段的解釋如下:

圖片

(3). pre-site的目的是建立項(xiàng)目站點(diǎn),包含3個(gè)階段:

①site生成項(xiàng)目站點(diǎn)文檔;

②post-site執(zhí)行一些在生成項(xiàng)目站點(diǎn)之后需要完成的工作;

③site-deploy將生成的項(xiàng)目站點(diǎn)發(fā)布到服務(wù)器上。

需要說(shuō)明的是,從命令行執(zhí)行maven任務(wù)實(shí)質(zhì)上就是調(diào)用Maven的生命周期階段。例如執(zhí)行命令mvn clean install,則調(diào)用clean生命周期的clean階段和default生命周期的install階段,而實(shí)際上執(zhí)行的階段為clean生命周期的pre-clean、clean階段,以及default生命周期的從validate至install的所有階段。

3.插件

在Maven的生命周期中對(duì)軟件人員的工作進(jìn)行了抽象,相當(dāng)于做一個(gè)模板,具體的實(shí)現(xiàn)則由插件來(lái)完成。下面列出default生命周期的內(nèi)置插件綁定關(guān)系及具體任務(wù):

圖片

更加詳細(xì)的內(nèi)容可以參考Apache Maven官網(wǎng):

http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

4.倉(cāng)庫(kù)

Maven通過(guò)倉(cāng)庫(kù)來(lái)統(tǒng)一管理文件,同時(shí),為了實(shí)現(xiàn)重用,項(xiàng)目構(gòu)建后生成的構(gòu)件也安裝或部署到倉(cāng)庫(kù)中。Maven倉(cāng)庫(kù)的分為本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù),而遠(yuǎn)程倉(cāng)庫(kù)又包含中央倉(cāng)庫(kù)、私服和其他公共庫(kù)。初始狀態(tài)下,本地倉(cāng)庫(kù)是不存在的,當(dāng)用戶執(zhí)行Maven命令后,則創(chuàng)建本地倉(cāng)庫(kù),并根據(jù)實(shí)際需要,從遠(yuǎn)程倉(cāng)庫(kù)下載構(gòu)件至本地倉(cāng)庫(kù)。

圖片

(1).本地倉(cāng)庫(kù):一般來(lái)說(shuō),在Maven項(xiàng)目目錄下,沒(méi)有諸如lib這樣用來(lái)存放依賴文件的目錄。當(dāng)Maven在執(zhí)行編譯或測(cè)試時(shí),如果需要依賴文件,它總是基于坐標(biāo)使用本地倉(cāng)庫(kù)的依賴文件。通過(guò)setting.xml文件標(biāo)識(shí):

D:/repository/

(2).遠(yuǎn)程倉(cāng)庫(kù):相對(duì)本地倉(cāng)庫(kù)而言;

(3).中央倉(cāng)庫(kù):是一個(gè)默認(rèn)的遠(yuǎn)程倉(cāng)庫(kù);包含了大部分的開(kāi)源JAVA構(gòu)件以及源碼等信息。Maven的安裝文件自帶了中央倉(cāng)庫(kù)的配置。在Maven的安裝目錄下:$MAVEN_HOME\\lib\\maven-model-builder-3.3.9.jar

圖片

圖片

central為中央倉(cāng)庫(kù)的唯一標(biāo)識(shí)。

(4).私服:是一種特殊的遠(yuǎn)程倉(cāng)庫(kù),架設(shè)在公司內(nèi)部。當(dāng)下載構(gòu)件時(shí),從私服下載,如果私服不存在,則私服請(qǐng)求提供服務(wù)。

5.Archetype

意為“原型”,可以理解為Maven項(xiàng)目的模板,以便用戶可以快速創(chuàng)建項(xiàng)目,同時(shí)針對(duì)同類項(xiàng)目保持相同的項(xiàng)目結(jié)構(gòu)及配置約定。Archetype是通過(guò)maven-archetype-plugin插件實(shí)現(xiàn),官網(wǎng)鏈接:

http://maven.apache.org/archetype/maven-archetype-plugin/

三、Maven在OpenDaylight的使用

OpenDaylight使用Maven工具進(jìn)行項(xiàng)目構(gòu)建和依賴管理,并在構(gòu)建簡(jiǎn)單的簡(jiǎn)易APP開(kāi)發(fā)一文中對(duì)Maven的基礎(chǔ)進(jìn)行介紹,鏈接如下:

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

1. 修改settings.xml

為了從遠(yuǎn)程倉(cāng)庫(kù)下載OpenDaylight版本的依賴包,首先需要修改maven的settings.xml,并指定遠(yuǎn)程倉(cāng)庫(kù)的地址。事實(shí)上,OpenDaylight提供了預(yù)先寫好的settings.xml文件,其下載地址為:

https://github.com/opendaylight/odlparent/blob/stable/carbon/settings.xml

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

具體內(nèi)容解釋如下:

圖片

Maven安裝以后,setting.xml文件存在兩個(gè)地方:

①USR_HOME/.m2/settings.xml,表示當(dāng)前用戶范圍的配置文件;

②MAVEN_HOME/conf/settings.xml,表示全局范圍配置文件,修改后將影響本機(jī)所有的用戶配置。

詳細(xì)的setting文件說(shuō)明參見(jiàn)鏈接:

https://maven.apache.org/settings.html。

2. 選擇Archetype

Archetype是一個(gè)Maven項(xiàng)目模板工具包,使用Archetype來(lái)生成項(xiàng)目骨架,可以使得開(kāi)發(fā)人員在開(kāi)發(fā)新的應(yīng)用程序時(shí),使用與OpenDaylight風(fēng)格一致的最佳實(shí)踐方法。

OpenDaylight應(yīng)用創(chuàng)建的Archetype可通過(guò)如下鏈接查詢:

https://nexus.opendaylight.org/#nexus-search;gav~org.opendaylight.archetypes~~~~

圖片

執(zhí)行命令:

圖片

通過(guò)交互構(gòu)建hello示例應(yīng)用,生成的文件視圖大致為:

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2988

    瀏覽量

    109455
  • XML
    XML
    +關(guān)注

    關(guān)注

    0

    文章

    188

    瀏覽量

    33729
  • HTML
    +關(guān)注

    關(guān)注

    0

    文章

    280

    瀏覽量

    42180
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Maven-02-Maven簡(jiǎn)介

    maven
    電子學(xué)習(xí)
    發(fā)布于 :2023年01月08日 17:11:25

    Maven-04-IDEA配置Maven

    maven
    電子學(xué)習(xí)
    發(fā)布于 :2023年01月08日 17:13:18

    Maven-01-Maven概述

    maven
    電子學(xué)習(xí)
    發(fā)布于 :2023年01月08日 17:15:37

    Maven 配置指南

    Maven 配置指南http://bbs.edu118.com/forum.php?mod=viewthread&tid=263&fromuid=231(出處: 信盈達(dá)IT技術(shù)社
    發(fā)表于 08-28 15:08

    在Linux平臺(tái)下面安裝Maven步驟說(shuō)明

    Apache Maven,是一個(gè)軟件(特別是Java軟件)項(xiàng)目管理及自動(dòng)構(gòu)建工具,由Apache軟件基金會(huì)所提供?;陧?xiàng)目對(duì)象模型(縮寫:POM)概念,Maven利用一個(gè)中央信息片斷能管理一個(gè)項(xiàng)目
    發(fā)表于 07-23 06:14

    Linux下的Maven安裝方法

    關(guān)鍵步驟如下: 1. 下載Maven包. 2. 解壓Maven包. 3.配置Maven系統(tǒng)參數(shù),驗(yàn)證Maven是否正確安裝.
    發(fā)表于 07-23 08:01

    MyEclipse環(huán)境搭建Maven的開(kāi)發(fā)環(huán)境

    一:Maven的下載安裝 1、安裝環(huán)境:win7 旗艦版 + MyEclipse2014 2、前置條件:JDK (本人用的jdk1.8) 3、maven下載: 說(shuō)明:maven依賴于jdk,所以搭建
    發(fā)表于 11-28 16:13 ?1450次閱讀

    干貨:在Windows上安裝Maven及配置

    干貨:在Windows上安裝Maven及配置
    的頭像 發(fā)表于 06-20 09:24 ?3003次閱讀
    干貨:在Windows上安裝<b class='flag-5'>Maven</b>及配置

    如何從零開(kāi)始學(xué)OpenDaylight

    OpenDaylight的邏輯架構(gòu)分為應(yīng)用層、控制器層和數(shù)據(jù)轉(zhuǎn)發(fā)層。其中,應(yīng)用層聚焦網(wǎng)絡(luò)業(yè)務(wù)邏輯開(kāi)發(fā),負(fù)責(zé)資源編排;控制器層進(jìn)行全局網(wǎng)絡(luò)的管理;數(shù)據(jù)轉(zhuǎn)發(fā)層為各種網(wǎng)絡(luò)設(shè)備,負(fù)責(zé)數(shù)據(jù)的轉(zhuǎn)發(fā)。
    的頭像 發(fā)表于 02-14 14:04 ?2919次閱讀
    如何從零開(kāi)始學(xué)<b class='flag-5'>OpenDaylight</b>

    OpenDaylight的運(yùn)行環(huán)境

    OpenDaylight作為一種開(kāi)源的SDN控制器,使用Java語(yǔ)言編寫,
    的頭像 發(fā)表于 02-14 14:08 ?1150次閱讀
    <b class='flag-5'>OpenDaylight</b>的運(yùn)行環(huán)境

    OpenDaylight中的OSGi

    從寫單個(gè)類的打印Hello World小程序到OSGi模塊化開(kāi)發(fā),確實(shí)存在較大的難度,本文將從模塊化、OSGI模型以及OSGI在OpenDaylight中的應(yīng)用等方面進(jìn)行介紹。
    的頭像 發(fā)表于 02-14 15:05 ?1105次閱讀
    <b class='flag-5'>OpenDaylight</b>中的OSGi

    OpenDaylight中的DataStore是什么

    SDN起源于校園網(wǎng),發(fā)揚(yáng)光大于數(shù)據(jù)中心,現(xiàn)廣泛用于廣域網(wǎng),SDN控制器,可能管理著數(shù)十萬(wàn)臺(tái)軟交換機(jī),下發(fā)數(shù)百萬(wàn)乃至上千萬(wàn)條路由信息。因此,作為SDN控制器的開(kāi)源項(xiàng)目OpenDaylight,無(wú)論是業(yè)務(wù)邏輯還是數(shù)據(jù)存儲(chǔ),
    的頭像 發(fā)表于 02-14 15:13 ?1890次閱讀
    <b class='flag-5'>OpenDaylight</b>中的DataStore是什么

    如何理解Maven拉包原理,搞定Maven構(gòu)建項(xiàng)目

    依賴是我們?cè)谑褂?Maven 構(gòu)建項(xiàng)目時(shí)最常使用的功能,通過(guò)依賴標(biāo)簽,我們可以直接從Maven倉(cāng)庫(kù)中引入對(duì)應(yīng)的Jar包,無(wú)需手動(dòng)再將Jar添加到目錄下了,可謂是十分方便,不過(guò)我們除了使用,還需要考慮多模塊下依賴之間的關(guān)系。
    發(fā)表于 05-25 09:50 ?807次閱讀
    如何理解<b class='flag-5'>Maven</b>拉包原理,搞定<b class='flag-5'>Maven</b>構(gòu)建項(xiàng)目

    idea配置了maven但不顯示pom

    配置 Maven 是一個(gè)開(kāi)發(fā)者常見(jiàn)的任務(wù),通過(guò) Maven 可以更方便地管理項(xiàng)目依賴和構(gòu)建過(guò)程。在配置 Maven 的過(guò)程中,我們可能會(huì)遇到一些問(wèn)題,比如沒(méi)有正確顯示 pom 文件。本文將詳細(xì)介紹
    的頭像 發(fā)表于 12-06 14:17 ?4180次閱讀

    idea如何添加maven

    Maven是一個(gè)開(kāi)源的項(xiàng)目管理工具,它提供了一種簡(jiǎn)單的方式來(lái)管理項(xiàng)目的依賴關(guān)系、構(gòu)建過(guò)程和發(fā)布部署。本文將詳細(xì)介紹如何將Maven添加到你的項(xiàng)目中,并使用它來(lái)管理你的項(xiàng)目。 第一步:安裝Maven
    的頭像 發(fā)表于 12-06 14:56 ?1596次閱讀