onos1.11源码编译及运行总结

1 前言

之前用buck编译onos1.9源码成功运行,现在onos1.11也可以用buck编译。由于网上好多用maven编译的,尝试了下,编译确实成功了,但是运行报错“missing requirement osgi.wiring.package”,据说是onos1.8以后只支持buck编译,不支持maven编译。对buck不熟悉就用buck编译源码,用maven开发应用。

2.用maven编译成功但运行失败的过程及原因分析

(1)修改junit中maven-checkstyle-plugin中packaging为jar。因为需要jar文件。

(2)屏蔽checkstyle-mvn.xml中checker下面的检查项,或者编译的时候用-Dcheckstyle.skip,这样的参数可以在onos_root/tools/dev/bash_profile发现。不屏蔽的话,由于很多文件没参考标准实现,很多不规范地方需要修改。

(3)屏蔽PipipeconfigManagerTest.java和FlowxxTest.java文件内容。因为测试有问题。

(4)不编译tenbi/yangmodels和yangmodels/utils项目,修改pom.xml文件就可以做到。

(5)修改lib/pom.xml中,保留org.onlab.junit.IntegrationTest

(6)mvn clean install这样就能编译成功,为了快速一点可以用mvn clean install -DskipTests -Dcheckstyle.skip,这样跳过测试就可以不修改3和4了

原因猜测:类似onlab-osgi这样的组件没有写相应的feature.xml文件来打包成feature,因为其他地方配置认为它们是feature,实际上只是jar的bundle

3.用buck编译且成功运行

(1)修改ONOS_ROOT目录下的.buckconfig文件,修改central=https://repo1.maven.org/maven2为central=http://maven.aliyun.com/nexus/content/groups/public/,这样可以提高编译速度,因为阿里云的仓库比较快;

(2)添加ONOS_ROOT环境变量,并设置ONOS_ROOT/tools/build目录到PATH路径上去;

(3)编译过程中还是比较慢的话,可以把某些文件手动下载到相应位置然后重新编译,比如protoc-3.0.2-linux-x86_64.zip就可以下载到目录protoc-release-3.0.2中去,这个位置可以看buck文件知道。

(4)修改ONOS_ROOT/web/gui/onos-gui-build中npm install –ignore-scripts –loglevel-error

(5)找到tools/build目录下的onos-build –show-output就能编译成功出现onos.tar.gz文件在buckout/gen/tools/package/onos-package目录下,然后就是找到karaf启动,最后用浏览器localhost:8181/onos/ui 用户名onos密码rocks

4.注意

(1)在windows上启动karaf.bat后需要在cli界面中输入onos以启动onos平台服务

你可能感兴趣的:(SDN)