Ubuntu系统下OpenDaylight源码编译安装(2)

<activeProfiles>
    <activeProfile>opendaylight-release</activeProfile>
    <activeProfile>opendaylight-snapshots</activeProfile>
  </activeProfiles>
</settings>

二、OpenDaylight源码获取、编译和安装

1. 新建项目文件夹,获取OpenDaylight源码:

sudo mkdir openDayLight
cd openDayLight
sudo git clone https://git.opendaylight.org/gerrit/p/controller.git

2. 指定编译ODL的版本(以Lithium锂版本为例)并查看确认:

cd controller
sudo git checkout stable/lithium
git branch

3. 联网编译Controller(确认之前的settings.xml文件已经修改好):

mvn clean install


* 如果编译过程中出现Test编译错误,可以加上 -DskipTests 跳过测试加快编译速度,其他编译错误和尝试解决方案:

目前遇到两种:
a. 指定目录不能创建或访问:更改文件夹读写权限,进入sudo模式重新编译
b. pom.xml相关错误:将~/.m2下的settings.xml复制到/root/.m2目录下:sudo cp ~/.m2/settings.xml /root/.m2,重新编译
编译成功!

4. 控制器验证运行。

旧版本的目录结构是“controller/opendaylight/distribution”,在新版本的目录结构中不再存在“distribution”这个子文件夹,这就是很多朋友参照以前的指南却找不到distribution子文件夹来启动控制器的原因。在这里应该cd进入“controller/karaf/opendaylight-karaf”文件夹,输入:

./target/assembly/bin/karaf

这时将启动控制器进入opendaylight-user@root>模式。这个时候,Opendaylight的controller项目初步安装就完成了!

*三、TEST:Integration项目源码的编译安装

*之前编译好的Controller项目是没有WebGUI(DLUX)等丰富Feature的核心控制器。Integration是一个框架性的工程,所有自己开发和修改的部分(包括controller、openflowPlugin&Java三个工程)编译为包后,都可以放在该工程的目录下一起执行。注意,如果是自己开发的包,则可以直接放到该目录下。但是如果是修改的原本工程,然后编译的包要替换掉上面目录中原来的包,这里有个问题是 integration 的 plugin目录下的包名和 controller, openflowplugin, openflowjava 中编译出来的包命名方式有点小差别,复制过去之前先重命名下,使之和目录下的原来包文件名一致,再复制替换。(参考自@jason-zhou童鞋的《OpenDaylight开发学习笔记基础之Controller篇》)。将各个工程的jar包copy到integration里后,运用mvn clean install 编译integration。工程所在目录:

username@ubuntu:~/developApps/openDayLight/integration/distributions/karaf/target/assembly/system/org/opendaylight$ ls
aaa              integration      neutron        sdninterfaceapp  usc
bgpcep            iotdm            nic            sfc              vpnservice
capwap            l2switch        odlparent      snmp            vtn
<strong><span>controller</span></strong>        lacp            <strong><span>openflowjava</span></strong>    sxp              yangtools
coretutorials    lispflowmapping  <span><strong>openflowplugin</strong></span>  tcpmd5
didm              mdsal            ovsdb          topoprocessing
dlux              nemo            packetcable    tsdr
groupbasedpolicy  netconf          reservation    ttp

*这里仅给出基本的Integration项目的编译安装步骤,Openflowplugin和Openflowjava工程将另文详述。

1. 下载并编译Integration。

回到openDaylight根目录,输入如下命令获取Integration源码:

git clone https://git.opendaylight.org/gerrit/p/integration.git

操作完成后可以看到目录下多出了integration目录,进入integration目录,指定版本(checkout)为stable/lithium,进行编译:

cd integration
git checkout stable/lithium
mvn clean install -DskipTests        (或者 cd进入子目录/distributions/karaf下执行此命令)

2.编译完成后,进入integration/distributions/karaf/target/assembly目录,运行如下命令启动ODL:

bin/karaf

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/81eca969bf0fab860f3be8995348e928.html