構築するためのOpenDaylightこんにちは世界プロジェクト開発環境の開発
OpenDaylightこんにちは世界プロジェクト開発ツールの開発をインストール
OpenDaylightこんにちは世界プロジェクトコードの開発フレームワークを構築します
ODL開発ツールの1をインストールするには、MVN ODLフレームマネージャーを生成しました。このセクションで開発MVNのODLフレームを使用して建築基準。
まず、コード生成ODLフレーム
Mavenのツールは、設定ファイルのセットに基づいてODLフレーム用のコードを生成します。コードのフレームワークを使用することの利点は、スクラッチから書かれたコードの基本的な枠組みを書かれていません、私たちはただ、自分のビジネスコードに焦点を当てる必要があります。
MVNの原型:生成-DarchetypeGroupId = org.opendaylight.controller -DarchetypeArtifactId = opendaylight-スタートアップ原型-DarchetypeVersion = 1.3.0、カーボン
ルート@のVM:〜 #MVNのorg.apache.maven.plugins:mavenの-原型-プラグイン:2.4:生成-DarchetypeGroupId = org.opendaylight.controller -DarchetypeArtifactId = opendaylight-スタートアップ原型-DarchetypeRepository = HTTPS://nexus.opendaylight .ORG /コンテンツ/リポジトリ/公共-DarchetypeVersion = 1.3.2-カーボン [INFO]スキャンのためのプロジェクト... ダウンロードします。https: //nexus.opendaylight.org/content/repositories/public/org/apache/maven/plugins /maven-archetype-plugin/2.4/maven-archetype-plugin-2.4 .pom ダウンロードします。https: //nexus.opendaylight.org/content/repositories/public/org/apache/maven/plugins/maven-archetype-plugin/ 2.4 /達人-アーキタイプ・プラグイン2.4.pom(2.7キロバイト/ AT 9キロバイト秒)、 ダウンロードします。https://nexus.opendaylight.org/content/repositories/public/org/apache/maven/archetype/maven-archetype/2.4/maven-archetype-2.4 .pom ダウンロードします。https: //nexus.opendaylight.org/content/repositories /public/org/apache/maven/archetype/maven-archetype/2.4/maven-archetype-2.4.pom(22.8キロバイト/で13キロバイト秒)、 ダウンロードします。https: //nexus.opendaylight.org/content/repositories/public / ORG / apacheの/のmaven / Mavenの親/ 26 / Mavenの親-26 .pom ダウンロードします。https: //nexus.opendaylight.org/content/repositories/public/org/apache/maven/maven-parent/26/達人-親26.pom(46.9キロバイト/で39キロバイト秒)、 ダウンロードします。https: //nexus.opendaylight.org/content/repositories/public/org/apache/apache/16/apache-16 .pom ダウンロードします。https: //nexus.opendaylight.org/content/repositories/public/org/apache/apache/16/apache-16.pom(27.5キロバイト/で16キロバイト秒)、 ダウンロードします。https: //nexus.opendaylight。 ORG /コンテンツ/リポジトリ/公共/組織/ apacheの/ Mavenの/プラグイン/ Mavenの-原型-プラグイン/ 2.4 / Mavenの-原型・プラグイン2.4 の.jar ダウンロードします。https: //nexus.opendaylight.org/content/repositories/public /org/apache/maven/plugins/maven-archetype-plugin/2.4/maven-archetype-plugin-2.4.jar(105.9キロバイト/で92キロバイト秒) [INFO] [INFO] --------- -------------------------------------------------- ------------- [INFO]ビルMavenのスタブプロジェクト(ノーPOM) 1 [INFO]-------------------------------------------------- ---------------------- [INFO] [INFO] >>>のmaven-原型-プラグイン:2.4:生成(デフォルト-CLI)>-ソースを生成します@スタンドアロン・POM >>> [INFO] [INFO] <<<のmaven-原型-プラグイン:2.4:生成(デフォルト-CLI)<スタンドアロン・ポンポン@ <<<-ソース生成 [INFO] [INFO] --- Mavenを---(デフォルト-CLI)@スタンドアロン-POM生成:2.4:-プラグインを-archetype
値を定義するためのプロパティ「のgroupId 」:org.opendaylight.exampleの 値を定義するためのプロパティ「たartifactId 」:例 プロパティを使用して[INFO]:バージョン = 0.1.0- SNAPSHOT 値を定義するためのプロパティ「パッケージ」:org.opendaylight.topologyを:: 7月 12、2019年2時36分35秒PM org.apache.velocity.runtime.log.JdkLogChuteログ INFO:FileResourceLoader:追加のパス" 。「 値の定義のためのプロパティを」classPrefix ' :トポロジ: 値を定義するためのプロパティ' 著作権" :労働者 プロパティを使用して[INFO]:COPYRIGHTYEAR = 2017 :プロパティの設定を確認し groupIdを:org.opendaylight.topologyの たartifactId:トポロジの バージョン: 0.1.0- SNAPSHOTの パッケージ:ORGを。 opendaylight.topology classPrefix:トポロジ 著作権:ワーカー COPYRIGHTYEAR: 2017 Y:Y
[INFO] ----------------------------------------------- ----------------------------- [INFO]以下のパラメータを使用するためのプロジェクト作成から原型:opendaylight-スタートアップ原型を:1.3.2 - カーボン [INFO] --------------------------------------------- ------------------------------- [INFO]パラメータ:groupIdを、値:org.opendaylight.topology [INFO]パラメータ:たartifactId、値:トポロジー [INFO]パラメータ:バージョン、値: 0.1.0- SNAPSHOT [INFO]パラメータ:パッケージ、価値:org.opendaylight.topology [INFO]パラメータ:packageInPathFormat、値:ORG / opendaylight / トポロジー [INFO]パラメータ:classPrefix、値:トポロジ [INFO]パラメータ:パッケージ、価値:org.opendaylight.topology [INFO]パラメータ:バージョン、値: 0.1.0- SNAPSHOT [INFO]パラメータ:著作権、価値:労働者 [INFO ]パラメータ:groupIdを、値:org.opendaylight.topology [INFO]パラメータ:たartifactId、値:トポロジー [INFO]パラメータ:COPYRIGHTYEAR、値: 2017 [WARNING]ドン" トン・オーバーライド・ファイル/root/topology/pom.xml [INFO ]作成したプロジェクトからの原型でディレクトリ:/ルート/ トポロジー [INFO] ----------------------------------- ------------------------------------- [INFO] SUCCESSを構築 [INFO]-------------------------------------------------- ---------------------- [INFO]合計時間: 3:53 分 :で終了[INFO] 2019-07-12T14:36:59 + 08: 00 [INFO]最終的なメモリ:16M / 38M [INFO] ------------------------------------- -----------------------------------
終了コマンドが実行されると、コードは、ODLのフレームを生成します。次のように具体的な内容は以下のとおりです。
ファイル名 | 機能 |
API | ヤンモデルディレクトリ |
アーティファクト | プロジェクト管理コンポーネントの座標 |
CLI | 展開設定ファイル |
特徴 | 組織と管理機能のディレクトリ |
IMPL | ビジネス・ロジック・コードは、ディレクトリを実装します |
それ | 統合テスト |
デカンター | karaf包装ディレクトリ |
SRC | |
pom.xml | 基本情報Mavenプロジェクト記述ファイル |
第二に、コードがコンパイルされたODLフレーム
ODLフレームワークコードがコンパイルされた後、搬送能力は余分な機能を持たない最も簡単なODLコントローラの1つであることができます。
ヒント:
このプロセスでは、あなたのマシンとネットワークの特定のパフォーマンスの長さに応じて、いくつかの時間のために継続されます。あなたはプロジェクトのルートディレクトリにこのアクションを実行する前に、それがあることを確認してください。
MVNクリーンインストール-DskipTests -Dmaven.javadoc.skip =真-Dcheckstyle.skip =真
参数:
-DskipTests表示不执行测试用例
-Dmaven.javadoc.skip=true表示跳过javadoc
-Dcheckstyle.skip=true表示跳过checkstyle检查
root@vm:~/topology# pwd /root/example root@vm:~/topology# mvn clean install -DskipTests -Dmaven.javadoc.skip=true -Dcheckstyle.skip=true [INFO] Scanning for projects... Downloading: https://nexus.opendaylight.org/content/repositories/public/org/opendaylight/odlparent/odlparent/1.8.2-Carbon/odlparent-1.8.2-Carbon.pom Downloaded: https://nexus.opendaylight.org/content/repositories/public/org/opendaylight/odlparent/odlparent/1.8.2-Carbon/odlparent-1.8.2-Carbon.pom (77 KB at 26.6 KB/sec) Downloading: https://nexus.opendaylight.org/content/repositories/public/org/opendaylight/odlparent/odlparent-lite/1.8.2-Carbon/odlparent-lite-1.8.2-Carbon.pom Downloaded: https://nexus.opendaylight.org/content/repositories/public/org/opendaylight/odlparent/odlparent-lite/1.8.2-Carbon/odlparent-lite-1.8.2-Carbon.pom (18 KB at 30.4 KB/sec) Downloading: https://nexus.opendaylight.org/content/repositories/public/org/opendaylight/mdsal/binding-parent/0.10.2-Carbon/binding-parent-0.10.2-Carbon.pom
[INFO] Feature repository discovered recursively: standard-3.0.8 [INFO] Feature repository discovered recursively: enterprise-3.0.8 [INFO] Feature repository discovered recursively: org.ops4j.pax.web-3.2.9 [INFO] Feature repository discovered recursively: spring-3.0.8 [INFO] Feature repository discovered recursively: odl-topology-0.1.0-SNAPSHOT [INFO] Feature repository discovered recursively: odl-topology-0.1.0-SNAPSHOT [INFO] Feature repository discovered recursively: odl-yangtools-1.1.2-Carbon [INFO] Feature repository discovered recursively: odlparent-1.8.2-Carbon [INFO] Feature repository discovered recursively: odl-netty-4 [INFO] Feature repository discovered recursively: odl-guava-18 [INFO] Feature repository discovered recursively: odl-guava-21 [INFO] Feature repository discovered recursively: odl-lmax-3 [INFO] Feature repository discovered recursively: odl-triemap-0.2 [INFO] Feature repository discovered recursively: odl-mdsal-models-0.10.2-Carbon [INFO] Feature repository discovered recursively: odl-yangtools-2.2.2-Carbon [INFO] Feature repository discovered recursively: odl-mdsal-1.5.2-Carbon [INFO] Feature repository discovered recursively: odl-controller-1.8.2-Carbon [INFO] Feature repository discovered recursively: odl-akka-all [INFO] Feature repository discovered recursively: odl-akka-scala-2.11 [INFO] Feature repository discovered recursively: odl-akka-system-2.4 [INFO] Feature repository discovered recursively: odl-akka-clustering-2.4 [INFO] Feature repository discovered recursively: odl-akka-leveldb-0.7 [INFO] Feature repository discovered recursively: odl-akka-persistence-2.4 [INFO] Feature repository discovered recursively: odl-config-0.6.2-Carbon [INFO] Feature repository discovered recursively: odl-config-persister-0.6.2-Carbon [INFO] Feature repository discovered recursively: odl-config-persister-0.6.2-Carbon [INFO] Feature repository discovered recursively: odl-controller-1.5.2-Carbon [INFO] Feature repository discovered recursively: odl-aaa-0.5.2-Carbon [INFO] Feature repository discovered recursively: odl-aaa-0.5.2-Carbon [INFO] Feature repository discovered recursively: odl-dlux-0.5.2-Carbon [INFO] Feature repository discovered recursively: odl-dlux-0.5.2-Carbon [INFO] Feature repository discovered recursively: standard-3.0.8 [INFO] Feature repository discovered recursively: org.ops4j.pax.web-3.2.9 [INFO] Feature repository discovered recursively: org.ops4j.pax.cdi-0.11.0 [INFO] Feature repository discovered recursively: odl-yangtools-1.1.2-Carbon [INFO] Feature repository discovered recursively: odlparent-1.8.2-Carbon [INFO] Feature repository discovered recursively: odl-mdsal-1.5.2-Carbon [INFO] Feature repository discovered recursively: odl-yangtools-2.2.2-Carbon [INFO] Feature repository discovered recursively: odl-mdsal-models-0.10.2-Carbon [INFO] Feature repository discovered recursively: odl-config-0.6.2-Carbon [INFO] Feature repository discovered recursively: odl-config-persister-0.6.2-Carbon [INFO] Feature repository discovered recursively: odl-config-persister-0.6.2-Carbon [INFO] Feature repository discovered recursively: odl-controller-1.8.2-Carbon [INFO] Feature repository discovered recursively: odl-controller-1.5.2-Carbon [INFO] Feature repository discovered recursively: odl-aaa-0.5.2-Carbon [INFO] Feature repository discovered recursively: odl-aaa-0.5.2-Carbon [INFO] Feature repository discovered recursively: odl-dlux-0.5.2-Carbon [INFO] Feature repository discovered recursively: odl-dlux-0.5.2-Carbon [INFO] Feature repository discovered recursively: odl-akka-scala-2.11 [INFO] Feature repository discovered recursively: odl-akka-system-2.4 [INFO] Feature repository discovered recursively: odl-akka-clustering-2.4 [INFO] Feature repository discovered recursively: odl-akka-leveldb-0.7 [INFO] Feature repository discovered recursively: odl-akka-persistence-2.4
[INFO] [INFO] --- maven-site-plugin:3.6:attach-descriptor (generate-site) @ example-aggregator --- [INFO] Attaching 'src/site/site.xml' site descriptor with classifier 'site'. [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] ODL :: org.opendaylight.example :: example-api ..... SUCCESS [ 34.400 s] [INFO] ODL :: org.opendaylight.example :: example-impl .... SUCCESS [ 3.889 s] [INFO] ODL :: org.opendaylight.example :: example-cli ..... SUCCESS [ 3.516 s] [INFO] ODL :: org.opendaylight.example :: example-features SUCCESS [07:59 min] [INFO] ODL :: org.opendaylight.example :: example-karaf ... SUCCESS [12:00 min] [INFO] ODL :: org.opendaylight.example :: example-artifacts SUCCESS [ 3.710 s] [INFO] ODL :: org.opendaylight.example :: example-it ...... SUCCESS [ 18.773 s] [INFO] example ............................................ SUCCESS [ 25.075 s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 21:41 min [INFO] Finished at: 2019-07-29T19:33:48+08:00 [INFO] Final Memory: 210M/888M [INFO] ------------------------------------------------------------------------
三、编译完成
当编译完成之后,文件夹下会生成target
启动ODL控制器
进入bin目录下,运行./karaf脚本,启动ODL控制器。
查看此时安装的插件,只有简单的UI,命令行,API等。
ODL界面
简单总结一下本篇的内容。本篇主要是下载ODL框架代码,然后编译java源码,生成一个最简单的ODL控制器。本篇还有到ODL的功能开发,所有该ODL只有最简单的插件。