Ubuntu 14.04 LTS
CPU:双核
内存:4GB
OpenDaylight requires Java 7 JDK for Lithium . For Beryllium, a Java 8 JDK may be required.
过程:
Ubuntu 14.04的软件源中暂不支持java 8,因此,首先解决该问题:
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer
$ 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)
Ubuntu默认支持的maven版本太低,因此,这里选择安装maven 3.3.9版本。
$ sudo apt-get purge -y maven
$ cd ~/Downloads
$ sudo wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
$ 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"
一些OpenDaylight项目可能十分大,其耗费资源也会很大,因此,可以增加Maven的可用RAM。
具体方法如下:
$ echo " export MAVEN_OPTS='-Xmx1048m -XX:MaxPermSize=512m' " >> ~/.bashrc
$ source ~/.bashrc
略。。。
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-releaseid>
<repositories>
<repository>
<id>opendaylight-mirrorid>
<name>opendaylight-mirrorname>
<url>https://nexus.opendaylight.org/content/repositories/public/url>
<releases>
<enabled>trueenabled>
<updatePolicy>neverupdatePolicy>
releases>
<snapshots>
<enabled>falseenabled>
snapshots>
repository>
repositories>
<pluginRepositories>
<pluginRepository>
<id>opendaylight-mirrorid>
<name>opendaylight-mirrorname>
<url>https://nexus.opendaylight.org/content/repositories/public/url>
<releases>
<enabled>trueenabled>
<updatePolicy>neverupdatePolicy>
releases>
<snapshots>
<enabled>falseenabled>
snapshots>
pluginRepository>
pluginRepositories>
profile>
<profile>
<id>opendaylight-snapshotsid>
<repositories>
<repository>
<id>opendaylight-snapshotid>
<name>opendaylight-snapshotname>
<url>https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/url>
<releases>
<enabled>falseenabled>
releases>
<snapshots>
<enabled>trueenabled>
snapshots>
repository>
repositories>
<pluginRepositories>
<pluginRepository>
<id>opendaylight-snapshotid>
<name>opendaylight-snapshotname>
<url>https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/url>
<releases>
<enabled>falseenabled>
releases>
<snapshots>
<enabled>trueenabled>
snapshots>
pluginRepository>
pluginRepositories>
profile>
profiles>
<activeProfiles>
<activeProfile>opendaylight-releaseactiveProfile>
<activeProfile>opendaylight-snapshotsactiveProfile>
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-langgroupId>
<artifactId>commons-langartifactId>
<version>2.6version>
dependency>