运维调试记录:Opendaylight铍版本开发环境搭建流程

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhaobryant/article/details/73609021 一、系统环境Ubuntu 14.
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhaobryant/article/details/73609021

一、系统环境

  • Ubuntu 14.04 LTS

  • CPU:双核

  • 内存:4GB

二、步骤详解

1. 安装JAVA开发环境

OpenDaylight requires Java 7 JDK for Lithium . For Beryllium, a Java 8 JDK may be required.

过程:

Ubuntu 14.04的软件源中暂不支持java 8,因此,首先解决该问题:

  • 对于Oracle JDK:
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer
  • 对于Open JDK:
$ sudo add-apt-repository ppa:openjdk-r/ppa
$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk
  • 检测是否安装成功:
zjl@zjl-uestc:~$ java -version
java version "1.8.0_77"
Java(TM) SE Runtime Environment (build 1.8.0_77-b03)
Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode)

zjl@zjl-kb310:~$ java -version
openjdk version "1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-0ubuntu4~14.04-b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)

2. 安装maven 3

Ubuntu默认支持的maven版本太低,因此,这里选择安装maven 3.3.9版本。

  • 清除之前安装的maven:
$ sudo apt-get purge -y maven
  • 转入下载目录:
$ cd ~/Downloads
  • 下载maven-3.3.9(使用清华大学的源):
$ sudo wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
  • 解压安装maven-3.3.9:
$ tar -zxvf apache-maven-3.3.9-bin.tar.gz
$ sudo cp -r apache-maven-3.3.9 /usr/local
$ sudo ln -s /usr/local/apache-maven-3.3.9/bin/mvn /usr/bin/mvn
  • 配置环境变量:
$ echo "export M2_HOME=/usr/local/apache-maven-3.3.9" >> ~/.profile
$ source ~/.profile
  • 测试是否安装成功:
zjl@zjl-kb310:/usr/local$ mvn -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /usr/local/apache-maven-3.3.9
Java version: 1.8.0_91, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-8-openjdk-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.2.0-27-generic", arch: "amd64", family: "unix"
  • 可选:提高Maven可用RAM总量的方法:

一些OpenDaylight项目可能十分大,其耗费资源也会很大,因此,可以增加Maven的可用RAM。

具体方法如下:

$ echo " export MAVEN_OPTS='-Xmx1048m -XX:MaxPermSize=512m' " >> ~/.bashrc
$ source ~/.bashrc

3. 安装Git

略。。。

4. 修改~/.m2/settings.xml

OpenDaylight maintains its own repositories outside of Maven Central, which means maven cannot resolve OpenDaylight artifacts by default. Since OpenDaylight is organized as multiple inter-dependent projects, building a particular project usually means pulling in some artifacts. In order to make this work, your maven installation needs to know the location of OpenDaylight repositories and has to taught to use them.

具体方法:

# Shortcut command for grabbing settings.xml
$ cp -n ~/.m2/settings.xml{,.orig} ; \
    wget -q -O - https://raw.githubusercontent.com/opendaylight/odlparent/master/settings.xml > ~/.m2/settings.xml

~/.m2/settings.xml的内容如下:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

  <profiles>
    <profile>
      <id>opendaylight-release</id>
      <repositories>
        <repository>
          <id>opendaylight-mirror</id>
          <name>opendaylight-mirror</name>
          <url>https://nexus.opendaylight.org/content/repositories/public/</url>
          <releases>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>opendaylight-mirror</id>
          <name>opendaylight-mirror</name>
          <url>https://nexus.opendaylight.org/content/repositories/public/</url>
          <releases>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>

    <profile>
      <id>opendaylight-snapshots</id>
      <repositories>
        <repository>
          <id>opendaylight-snapshot</id>
          <name>opendaylight-snapshot</name>
          <url>https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</url>
          <releases>
            <enabled>false</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>opendaylight-snapshot</id>
          <name>opendaylight-snapshot</name>
          <url>https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</url>
          <releases>
            <enabled>false</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>

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

如果你使用了代理,那么需要配置代理,具体阅读:Maven proxy configuration。

错误处理:

如果遇到了如下错误:

[WARNING] Error initializing: org.codehaus.plexus.velocity.DefaultVelocityComponent
java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils

添加下面内容到文件~/.m2/repository/org/apache/maven/plugins/maven-archetype-plugin/{version}/maven-archetype-plugin-{version}.pom:

<dependency>
    <groupId>commons-lang</groupId>
    <artifactId>commons-lang</artifactId>
    <version>2.6</version>
</dependency>
目录
相关文章
|
传感器 边缘计算 运维
AR 虚实叠加技术在工业设备运维中的实现流程方案
AR技术通过虚实信息融合,实现工业设备参数可视化、故障立体化、操作直观化,提升运维效率与精度。结合物联网与数字孪生,打造智能运维新范式。
|
人工智能 运维 监控
构建高效自动化运维流程的策略与实践
【7月更文挑战第55天】在数字化转型的浪潮下,企业IT基础设施日趋复杂多变,传统的手动运维方式已难以满足快速响应和高稳定性的需求。本文将探讨如何通过自动化工具和策略,构建一个高效的自动化运维流程,旨在提高系统部署的速度、准确性和可靠性,同时降低人为错误和运营成本。我们将详细分析自动化运维的关键组件,以及在实施过程中可能遇到的挑战和解决方案。
|
运维 监控 测试技术
自动化运维实践:CI/CD流程详解
【6月更文挑战第30天】CI/CD实践推动软件开发自动化,通过持续集成确保代码质量,自动部署提升交付速度。核心流程包括:代码管理(Git等)、自动化构建与测试、代码审查、部署。关键点涉及选择工具、测试覆盖率、监控及团队协作。采用CI/CD能减少错误,但需应对挑战,如工具选型、全面测试和团队沟通。
5954 2
|
人工智能 运维 监控
AI辅助的运维流程自动化:实现智能化管理的新篇章
AI辅助的运维流程自动化:实现智能化管理的新篇章
1979 22
|
弹性计算 运维 Ubuntu
使用阿里云服务器自动搭建WordPress网站流程,超简单by系统运维管理OOS
本教程介绍如何使用阿里云服务器(ECS)和系统运维管理OOS自动搭建WordPress网站,支持Ubuntu、CentOS及Alibaba Cloud Linux等操作系统。前提条件包括ECS实例处于运行中、有公网IP且安全组已开启80端口。安装步骤简单:进入ECS快速购买控制台选择预装WordPress,确认下单后通过管理控制台查看实例详情并开放安全组端口。最后,通过实例公网IP访问,出现WordPress登录页即表示安装成功。
|
运维 监控 持续交付
Websoft9 运维面板:GitOps 助力简化持续部署流程
传统部署中手动配置、脚本管理及版本回滚等问题一直困扰开发者。GitOps 通过基础设施代码化与版本化,成为持续部署新标准。Websoft9 深度融合 GitOps 理念,实现从代码提交到生产发布的自动化闭环。其核心功能包括:Git 仓库驱动配置管理(支持多分支隔离)、Argo CD 集成自动同步(灰度发布与全量更新)以及可视化监控审计(部署历史与资源变化分析)。本文结合实际操作解析其低门槛企业级部署方案。
360 0
|
运维 监控 jenkins
运维自动化实战:利用Jenkins构建高效CI/CD流程
【10月更文挑战第18天】运维自动化实战:利用Jenkins构建高效CI/CD流程
|
运维 Devops 测试技术
自动化运维的魔法——打造高效的DevOps流程
【10月更文挑战第28天】在数字化浪潮不断推进的今天,企业对运维效率的追求如同古人探索魔法一般充满好奇与渴望。本文将带你走进自动化运维的世界,揭秘如何通过DevOps实践,实现从代码到部署的无缝连接,提升企业的IT运营效能。我们将一起探索自动化工具的选择与配置,以及如何构建一个既能快速响应业务需求,又能保障系统稳定性的高效流程。
|
运维 监控 Devops
DevOps实践:构建高效运维流程
【9月更文挑战第3天】在当今快节奏的技术环境中,高效的运维流程是企业成功的关键。本文旨在揭示如何通过DevOps实践,构建一个既灵活又高效的运维体系。我们将深入探讨自动化工具、持续集成与持续部署(CI/CD)策略以及监控和日志管理的最佳实践,以实现运维工作的优化。文章将用简洁明了的语言,结合生动的比喻,带领读者走进DevOps的世界,学习如何将理论应用到实际工作中去。
|
运维 监控 jenkins
自动化运维实践:构建高效的CI/CD流程
【8月更文挑战第31天】在软件开发的海洋中,持续集成和持续交付(CI/CD)是推动现代开发实践的强大潮流。本文将带你潜入这股潮流之下,探索如何构建一个高效且灵活的自动化运维流程,以提升软件交付的速度与质量。我们将从基础工具的选择到流程设计,再到实际操作的技巧,逐步展开讨论,并结合代码示例,使理论与实践紧密结合。

热门文章

最新文章