当前位置: 首页 > 工具软件 > Open Atrium > 使用案例 >

Opendaylight源码编译相关问题以及导入eclipse

别锐
2023-12-01

Opendaylight源码编译相关问题以及导入eclipse

有很多的实现方式,这里只阐述我所使用的方法

准备工作

  • jdk
  • maven
  • eclipse

软件安装以及环境配置,在这里就不做赘述,网上有很多的相关教程

从Github上下载相关的项目代码

  • 开始编译之前,将odlparent中的setting.xml文件放到本地仓库中(我的本地仓库是~/.m2/repository/,我将setting.xml文件放在~/.m2/
  • 由于我的项目是使用Lithium版本,所以一下我下载的项目版本都是release/Lithium

odlparent https://github.com/opendaylight/odlparent/tree/release/lithium
yangtools https://github.com/opendaylight/yangtools/tree/release/lithium
openflowjava https://github.com/opendaylight/openflowjava/tree/release/lithium
openflowplugin https://github.com/opendaylight/openflowplugin/tree/release/lithium
controller https://github.com/opendaylight/controller/tree/release/lithium

-下载完成之后就可以开始编译了,在需要编译的项目目录下执行 mvn clean install
- 在使用maven编译的时候要注意编译的顺序,按照以上下载的顺序进行编译,顺序不一致的话,可能会导致maven找不到依赖的.jar,而导致编译失败
- 在编译yangtools时,会出现错误。是xxx\yangtools-release-lithium\common\checkstyle-logging这个工程编译失败,可以先跳过单元测试进行规避,命令行“maven clean install -Dmaven.test.skip=true”。

将编译之后的项目导入eclipse中

在想要导入eclipse中的项目目录下执行 mvn eclipse:eclipse,将项目转成eclipse可以识别的项目
转换成功后,就可以在eclipse里面 import 项目了

由于我在编译源码的时候没有问题,并且在编译完成之后直接对controller执行的 mvn eclispe:eclipse 也能转换成功,所以我想只要是项目源码能编译成功的,转换成 eclipse 项目也是没有问题的。

还有一种方法是在eclipse安装m2e插件,但是我没有成功,安装这个插件的话就不需要将maven项目转成eclipse项目,也可以直接导入ecllipse中

下面是在windows下批处理下载odl所有项目的程序

新建一个文件名为clone.cmd

@echo off
for /f %%i in (projects.txt) do (
if not exist %%i git clone https://github.com/opendaylight/%%i.git %%i
)

新建一个文件名为projects.txt

aaa
alto
archived-affinity
archived-defense4all
archived-net-virt-platform
archived-opendove
armoury
atrium
bgpcep
bier
capwap
cardinal
centinel
coe
controller
coretutorials
daexim
didm
discovery
dlux
dluxapps
docs
eman
faas
federation
fpc
genius
groupbasedpolicy
honeycomb-vbd
infrautils
integration
integration-distribution
integration-packaging
integration-packaging-ansible-opendaylight
integration-packaging-puppet-opendaylight
integration-test
iotdm
jsonrpc
l2switch
lacp
lispflowmapping
mdsal
messaging4transport
natapp
nemo
netconf
netide
netvirt
neutron
next
nic
ocpplugin
odlparent
of-config
ofextensions-circuitsw
openflowjava
openflowplugin
opflex
ovsdb
p4plugin
packetcable
persistence
plugin2oc
releng-autorelease
releng-builder
reservation
sdninterfaceapp
sfc
snbi
snmp
snmp4sdn
spectrometer
sxp
systemmetrics
tcpmd5
toolkit
topoprocessing
transportpce
tsdr
ttp
unimgr
usc
usecplugin
vpnservice
vtn
yangide
yang-push
yangtools

  • 将两个文件放在一个文件夹中,双击执行clone.cmd即可下载与odl有关的所有项目
  • 批处理下载的项目版本均是 master ,需要在本地使用 git checkout release/Lithium 修改版本,此处我修改为Lithium
  • 这个方法我没有尝试过编译,有兴趣的可以试一试
 类似资料: