Table of Contents |
---|
IDE Setup
- Download the IntelliJ Community Edition from http://www.jetbrains.com/idea/download/
- Import settings into IntelliJ as explained here:
- Coding Standards
- Set Imports: Preferences -> Code Style -> Java -> Imports. Uncheck "Use fully qualified class names in javadocs"
Setup command line tools and Node
...
Code Block |
---|
$ git --version git version 2.8.2 |
Build
Git clone the CDAP repository and the Hydrator plugins:
Code Block |
---|
git clone git@github.com:cdapio/cdap.git |
Now build using maven:
Code Block |
---|
cd cdap
mvn clean install -DskipTests |
If you get compile errors similar to this one:
Code Block |
---|
Exception in thread "main" java.lang.NoSuchMethodError: java.nio.ByteBuffer.mark()Ljava/nio/ByteBuffer;
at org.eclipse.aether.connector.basic.ChecksumCalculator.update(ChecksumCalculator.java:202) |
this is likely due to the version of maven that does not work properly with latest Java versions. Upgrading to maven 3.6.1 will most likely fix the problem.
If you encounter an error like this one
Code Block |
---|
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]
[ERROR] The project io.cdap.cdap:cdap:6.5.0-SNAPSHOT (/workspace/cdap-build/cdap/pom.xml) has 1 error
[ERROR] Child module /workspace/cdap-build/cdap/cdap-ui of /workspace/cdap-build/cdap/pom.xml does not exist |
Run this to update the submodule
Code Block |
---|
git submodule update --init --recursive --remote |
Please refer to Build System & CI on how to setup building of CDAP. for more details on building CDAP.
Build and run Local Standalone CDAP
Follow the steps above to build CDAP and install it to the local maven repository. Then cd out of the cdap directory and clone hydrator-plugins:
Code Block |
---|
cd ..
git clone git@github.com:cdapio/hydrator-plugins.git |
Build the plugins:
note: --remote pulls the latest versions of every submodule, rather than the versions locked in the hydrator-plugins git. This is intentional.
Code Block |
---|
cd hydrator-plugins
git submodule update --init --recursive --remote
mvn clean install -DskipTests |
If you run into errors like this
Code Block |
---|
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project google-cloud: Compilation failure: Compilation failure:
[ERROR] /Users/USR/goog/hydrator-plugins/google-cloud/src/main/java/io/cdap/plugin/gcp/bigquery/connector/BigQueryConnector.java:[45,38] cannot find symbol
[ERROR] symbol: class ConnectorContext
[ERROR] location: package io.cdap.cdap.etl.api.connector |
You may need to run the following command in your CDAP directory and then try to build hydrator plugins again
Code Block |
---|
mvn clean install -DskipTests -P templates,spark-dev |
Then cd out of hydrator-plugins back to the cdap directory, and build the CDAP sandbox, including the plugins:
Code Block |
---|
cd ../cdap
HYDRATOR_PLUGINS=../hydrator-plugins |
If you're on a mac you would do ```export HYDRATOR_PLUGINS=[path-to-hydrator-plugins]``` with the full path instead of the above variable assignment otherwise it won't be able to find the hydrator plugins.
Code Block | ||
---|---|---|
| ||
MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=128m" mvn clean package \
-pl cdap-standalone,cdap-app-templates/cdap-etl \
-am -amd -DskipTests \
-P templates,dist,release,unit-tests \
-Dadditional.artifacts.dir=$HYDRATOR_PLUGINS
cd cdap-standalone/target
unzip cdap-sandbox-<version>-SNAPSHOT.zip
cd cdap-sandbox-<version>-SNAPSHOT
cd bin
./cdap sandbox start
|
- The UI runs on localhost:11011
- Wrangle a sample file, build a pipeline, run it.
IDE Setup
- Download the IntelliJ Community Edition from http://www.jetbrains.com/idea/download/
- Import settings into IntelliJ as explained here:
- Coding Standards
- Set Imports: Preferences -> Code Style -> Java -> Imports. Uncheck "Use fully qualified class names in javadocs"
Creating an IntelliJ project
...
- Go to menu
IntelliJ IDEA -> Preferences…
- Expand the
Copyright
setting on the left (underProject Settings
) - Select
Copyright Profiles
and add a new Copyright Profile (there is a+
button in the top-middle) - Give the profile a name (e.g. Cask Apache v2)
Paste the following text to the Copyright text box
Code Block language text Copyright © $today.year Cask Data, Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
- In the
Allow replacing copyright if old copyright contains
box, enterCopyright
. - Click on
Copyright
on the left again and add a new scope ofAll
with the copyright profile added in above step. - Note: if there is an existing copyright in a file, and you are modifying the file (rather than completely replacing it), extend the copyright rather than replacing it:
"Copyright © 2014" becomes Copyright © 2014-2016" (or similar).
Build
Git clone CDAP master project using either of these:
Code Block |
---|
git clone https://github.com/caskdata/cdap
git clone git@github.com:cdapio/cdap.git |
Now build using maven:
Code Block |
---|
cd cdap
mvn clean package -DskipTests |
If you get compile errors similar to this one:
Code Block |
---|
Exception in thread "main" java.lang.NoSuchMethodError: java.nio.ByteBuffer.mark()Ljava/nio/ByteBuffer;
at org.eclipse.aether.connector.basic.ChecksumCalculator.update(ChecksumCalculator.java:202) |
...
- .
...
Build and run Local Standalone CDAP
Code Block | ||
---|---|---|
| ||
cd <path_to_cdap_repo>
MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=128m" mvn package -pl cdap-standalone,cdap-app-templates/cdap-etl,cdap-examples -am -amd -DskipTests -P examples,templates,dist,release,unit-tests
cd cdap-standalone/target
unzip cdap-sdk-<version>-SNAPSHOT.zip && cd cdap-sdk-<version>-SNAPSHOT
cd bin
./cdap.sh start
|
...