Note: the artifacts on this page (git_recurse.sh and pom.xml) should not be here - they are here temporarily until they get added to a formal E2E root project on gerrit in proper source control. For now a couple of us needed to get "ALL" the code and build it to get an end to end feel for the ONAP system as a whole - and to reverse engineer it.
You can build most of the projects directly in IntelliJ - but everything can be built using a root pom.xml example (docker is required for dcae-inventory). Ideally we would all run a standardized vagrant development environment (running the same versions of grunt/node/npn/bower, jdk etc).
Setup your environment first (OSX, RHEL, Ubuntu or Windows) - Setting Up Your Development Environment
Warnings
Pending requests
- COMMON-17Getting issue details... STATUS
- COMMON-18Getting issue details... STATUS
Procedure
- create a root directory like "onap"
- copy the sh script there
- run the sh script
- notice the directory structure with embedded repos
- copy the root pom.xml
- maven build with the root pom
- there will be a couple projects that may not build due to your settings.xml repos, the state of a couple of the projects, whether you have docker running - see the developer pages to make sure you are setup
ONAP Developer Checklist
Setting Up Your Development Environment
Clone/pull all repos sh script
This script serves 3 purposes
1) ssh clone all ONAP repos (those of us with unrestricted internet access)
2) https clone all the ONAP repos (for those behind a fireall)
3) pull all repos - refreshing them in a close to an atomic pull as possible.
Use:
pass in the command clone|pull and your onap gerrit id (note oam repo is the largest at 0.8Gb transferred at 6Mb/sec)
./git_recurse.sh clone <your_gerrit_username> clone by https for those behind a firewall ./git_recurse.sh clone_https michaelobrien uHaBPMvR47mocSbB3YnK56EB1RR3Keer6vatj5555555555 to refresh project within a 5 min window TODO: checkout branch and merge master into branch |
---|
Version 20170531 git clone by ssh or https
Todo move to private branch or JIRA to be under source control - - COMMON-18Getting issue details... STATUS
Root pom.xml
version 1.1.2-SNAPSHOT
Place this pom.xml at the root of where you ran the git_recurse.sh (on top of all the repos) - it expects the same directory structure as setup in gerrit.
This is a root reactor pom.xml that can be used to build all or parts of onap
Some repos like dcae-inventory will require docker installed to build the images.
for speed build with all 5 repos in (~.m2/settings.xml) and the maven options below (no tests and no test compilation) - and try to get a 8-12 thread machine and most importantly a fast SSD - or use a Mac.
obrienbiometrics:core michaelobrien$ mvn clean install -U -DskipTests=true -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Dadditionalparam=-Xdoclint:none |
---|
Known Issues in progress
Last run 20170614
Try to develop in OSX - it has the least issues when building ONAP in its entirety.
There are issues with some of the projects (primarily in windows - like DCAE attempting to reinstall npn) - these may be due to the fact I am still ramping up on ONAP and have not done a full in-depth review of each project. Where available I have commented on the reason why a particular project is failing its local build (all should build fine in CI). Some compile issues were recently fixed since May 12th when I started building ONAP.
Some builds are only meant for deployment (a result of uisng mvn install) like appc - you may want to comment this one unless you are modifying it (run off artifacts).
replace /Users/michaelobrien/wse_onap/onap7/appc/deployment/installation/appc/target/docker-stage/opt/openecomp/appc/svclogic/graphs/appc/graph.versions? [y]es, [n]o, [A]ll, [N]one, [r]ename: error: invalid response [{ENTER}] |
---|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.onap</groupId>
<artifactId>org.onap</artifactId>
<version>1.1.2-SNAPSHOT</version>
<packaging>pom</packaging>
<name>onap.root</name>
<url>http://maven.apache.org</url>
<modules>
<module>aai/aai-common</module> <!-- needs yang exclude -->
<module>aai/aai-service</module>
<module>aai/logging-service</module>
<module>aai/model-loader</module>
<module>aai/rest-client</module> <!-- include the onap staging nexus repo for common-logging:jar:1.0.0, org.openecomp.aai.logging-service:eelf-logging:jar:1.0.0, org.openecomp.aai.logging-service:logging-api:jar:1.0.0 -->
<module>aai/router-core</module>
<module>aai/search-data-service</module>
<!--module>appc/deployment</module--> <!-- manual override input required on win/osx - but not RHEL -->
<module>dcae/apod/analytics</module>
<module>dcae/collectors/ves</module> <!-- https://wiki.opnfv.org/display/PROJ/VNF+Event+Stream -->
<module>dcae/controller/analytics</module>
<module>dcae/controller/dcae-controller-core</module>
<module>dcae/controller/dcae-controller-service/dcae-controller-service-dmaap-drsub</module>
<module>dcae/controller/dcae-controller-service-cdap</module>
<module>dcae/controller/dcae-controller-service-docker</module>
<module>dcae/controller/dcae-controller-service-vm</module>
<module>dcae/dcae-inventory</module>
<module>dcae/demo</module>
<module>dcae/dmaapbc</module>
<module>dcae/operation/utils</module> <!-- emf fixed by onap public repo -->
<!--module>demo</module--> <!-- error in parent refs in sample_plugin -->
<module>ecompsdkos/ecomp-sdk</module>
<!--module>ecompsdkos/ecomp-sdk/epsdk-app-os</module--> <!-- until PORTAL-8 -->
<module>mso</module>
<module>ncomp/cdap</module> <!-- emf resolution -->
<module>ncomp/core</module>
<module>ncomp/docker</module>
<module>ncomp/maven</module>
<module>ncomp/openstack</module>
<module>ncomp/utils</module>
<module>policy/common</module>
<module>policy/docker</module>
<module>policy/drools-applications</module>
<module>policy/drools-pdp</module>
<module>policy/engine</module>
<module>portal/ecomp-portal-FE-common</module> <!-- parent not referenced -->
<module>portal</module>
<!--module>sdc</module--> <!-- breakout root project--><!-- in catalog-be org/openrdf/sesame/sesame-rio-rdfjson/2.7.10/sesame-rio-rdfjson-2.7.10.jar; error in opening zip file-->
<!-- in onboarding-ui-war of sdc/openecomp-ui onboarding-fe: Process: /tmp/nodejs/node-v7.5.0-darwin-x64/bin/node /tmp/nodejs/node_modules/webpack/bin/webpack terminated with 255-->
<module>sdc/security-utils</module>
<module>sdc/common-app-api</module>
<module>sdc/common-be</module>
<module>sdc/catalog-dao</module>
<module>sdc/catalog-model</module>
<module>sdc/catalog-be</module>
<module>sdc/asdctool</module>
<module>sdc/catalog-ui</module> <!-- RHEL issues: Could not find artifact org.openecomp.sdc:test-apis-ci:jar:1.1.0-SNAPSHOT in 70_opendaylight-snapshot -->
<module>sdc/catalog-fe</module>
<module>sdc/asdc-tests</module>
<module>sdc/ui-ci</module> <!-- RHEL issues: Could not find artifact org.openecomp.sdc:test-apis-ci:jar:1.1.0-SNAPSHOT in 70_opendaylight-snapshot -->
<module>sdc/openecomp-be</module>
<!--module>sdc/openecomp-ui</module--> <!--onboarding-fe: Process: /tmp/nodejs/node-v7.5.0-darwin-x64/bin/node /tmp/nodejs/node_modules/webpack/bin/webpack terminated with 255-->
<module>sdc/sdc-os-chef</module>
<module>sdnc/adaptors</module> <!-- RHEL only - sdnc/sli/aai/AAIClient.java:30 in sdnc/core/sliPluginUtils-->
<module>sdnc/core</module> <!-- RHEL only - Felix issues in sdnc/core/slapi/provider and sdnc/core/sli/provider-->
<module>sdnc/northbound</module> <!-- RHEL only - package org.opendaylight.controller.config.spi na -->
<module>sdnc/oam</module>
<module>sdnc/plugins</module><!-- RHEL only - package org.codehaus.jettison.json does not exist -->
<module>ui/dmaapbc</module>
<module>vid</module>
</modules>
</project>
Links
A nice vagrant based orchestration of ONAP - https://github.com/electrocucaracha/vagrant-onap