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
- PORTAL-8Getting issue details... STATUS
merge/defer-to - INT-5Getting 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.
4) we currently cannot use an automated script around the following because a 1.0/1.1 filter/metadata is missing - also the directory structure differs for repos (some have a root repo, others are parent-less peers)
https:
//gerrit.onap.org/r/projects/?format=text
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 |
---|
https://github.com/obrienlabs/onap-root
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}] |
---|