For detailed installation and further instructions please refer http://airavata.apache.org/:
Documentation section in left hand panel. The website lists step by step instructions

Installing  Apache Airavata 0.17
------------------------------------------------

Prerequisites
-------------
Java 1.8 or later
Maven 3 or later

Build Apache Airavata from Source
---------------------------------
* Unzip/untar the source file or clone from git.
* cd to project folder and type
	$ mvn clean install
	Note: in order to skip tests use the command
			$ mvn clean install -Dmaven.test.skip=true
* Alternatively, all  compressed binary distributions can be found at <PROJECT DIR>/modules/distribution/release/target/release-artifacts

Running Tests
-------------
* Unit tests & integrations tests will run while Apache Airavata is built from source (without "-Dmaven.test.skip=true").
* To run the test samples
    - You can find the binary distributions at <PROJECT DIR>/modules/distribution/release/target/release-artifacts or from 
      the Apache Airavata download site.
    - Extract the binary distributions and once the binary is unzipped, instructions to run the tests should be followed 
      from README files found within.

Tutorials 
----------
The airavata documentation has instructions for basic tutorials at https://airavata.readthedocs.io/en/latest/