ONOS 开发教程02-搭建开发环境

作者:seriouszyx
首发地址:https://seriouszyx.com
代码均可在 GitHub 上找到

源码配置

作为一名开发者,Release 包不能满足所有的需要,下载源码成了绕不开的路。

git clone https://gerrit.onosproject.org/onos

ONOS 提供了很多利于开发的工具,将它们添加到 bash 配置文件中,就可以直接使用这些工具。ONOS 源码目录需要按自己的情况指定,我将配置写入到 /etc/profile 中。

export ONOS_ROOT="/root/onos"
source /root/onos/tools/dev/bash_profile

最新版本的 ONOS 可以使用 Bazel 进行源码构建运行,因为此前已通过 Docker 运行,Bazel 构建时速度又很慢,所以我在本地开发后直接推送到 Docker 中的控制器中,大家也可以按自己的需求选择合适的工作流。

安装依赖环境

ONOS 应用使用 Maven 构建和管理第三方包,可以直接使用 apt 安装。

apt install maven

Maven 官方下载通道速度很感人,强烈建议配置一下国内源,我的配置文件在 /etc/maven/settings.xml ,在 mirros 中加入阿里的源。

<mirror>
     <id>aliyunmaven</id>
     <mirrorOf>central</mirrorOf>
     <name>阿里云公共仓库</name>
     <url>https://maven.aliyun.com/repository/central</url>
</mirror>

IDE 我比较喜欢 IntelliJ IDEA,下载社区版就可以,完整版也可以使用学生邮箱免费使用,安装教程之前写过,这里直接发一下链接

建立工程

ONOS 插件化管理应用,官方提供了 onos-create-app 工具便于开发者创建工程结构。首先要指定使用哪个版本的 ONOS API 开发,最好将它也写入到 /etc/profile 中,如果缺少这步的话,可能无法正常建立工程。

export ONOS_POM_VERSION=2.4.0

在创建的过程中,需要指定 groupIdartifactId 和版本号,以及该应用的名称。

onos-create-app app org.foo foo-app 1.0-SNAPSHOT org.foo.app

创建过程中会自动从 Maven 拉取所需依赖,中途输入 y 确定创建。
image.png
创建成功后,执行命令的目录下面会生成一个 foo-app 目录,进入后预览一下生成的项目框架。
image.png
打开 IntelliJ IDEA,选择 Open 选项,因为该工程目录是基于 Maven 创建的,所以直接选中 foo-app 目录即可导入。注意在设置( Ctrl + Alt + s 打开)中修改 Maven 的目录和配置文件,否则 IDEA 会使用自带的配置文件,无法使用阿里源下载。
image.png
待第三方依赖全部下载导入成功后,即可开始开发应用。其中比较重要的是 AppComponent.javaactive() 为程序入口, deactive() 为应用删除时执行的部分。

构建发布

实际上,不对该工程做任何修改,它已经是一个可以正常构建发布的应用了。在右侧 maven 选项卡中,选择 install 进行构建,其实就相当于在工程目录下执行 mvn clean install 命令。
image.png
构建成功后,会在 target 目录下生成 foo-app-1.0-SNAPSHOT.oar 文件,这就是要发布到 ONOS 中的应用。执行下列命令,应用就自动发布到指定 ip 下的 ONOS 控制器 中。

onos-app 192.168.10.10 reinstall! target/foo-app-1.0-SNAPSHOT.oar

发布成功。
image.png
在 GUI 中搜索 foo ,找到刚刚发布的应用,启动后则可以正常运行。
image.png
这就是 ONOS 开发一个应用的完整流程,以后的开发则可以聚焦业务功能,无需被繁杂的环境配置搞混头脑。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

隐秀_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值