<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1"/>
  <title>Maven Setting - Gearpump 0.8.0 Documentation</title>
  
   <meta name="description" content="Maven Setting">
  

  

  <link rel="stylesheet" href="css/bootstrap-3.3.5.min.css">
  <style>
    body {
      padding-top: 60px;
      padding-bottom: 40px;
    }
  </style>
  <link rel="stylesheet" href="css/main.css">
  <link rel="stylesheet" href="css/pygments-default.css">
  <script src="js/vendor/modernizr-2.6.1-respond-1.1.0.min.js"></script>
</head>
<body>
  <!--[if lt IE 7]>
    <p class="chromeframe">You are using an outdated browser. <a href="http://browsehappy.com/">Upgrade your browser today</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to better experience this site.</p>
  <![endif]-->

  <div class="navbar navbar-inverse navbar-fixed-top" id="topbar">
    <div class="container">
      <div class="navbar-header">
        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" href="http://gearpump.io">Gearpump
          <span class="label label-primary" style="font-size: .6em">0.8.0</span>
        </a>
      </div>
      <div id="navbar" class="collapse navbar-collapse">
        <ul class="nav navbar-nav">
          <li><a href="index.html">Overview</a></li>

          <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">Introduction<b class="caret"></b></a>
            <ul class="dropdown-menu">
              <li><a href="submit-your-1st-application.html">Submit Your 1st Application</a></li>
              <li><a href="commandline.html">Client Command Line</a></li>
              <li class="divider"></li>
              <li><a href="basic-concepts.html">Basic Concepts</a></li>
              <li><a href="features.html">Technical Highlights</a></li>
              <li><a href="message-delivery.html">Reliable Message Delivery</a></li>
              <li><a href="performance-report.html">Performance</a></li>
              <li><a href="gearpump-internals.html">Gearpump Internals</a></li>
            </ul>
          </li>

          <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">Deploying<b class="caret"></b></a>
            <ul class="dropdown-menu">
              <li class="dropdown-header">Deployment</li>
              <li><a href="deployment-local.html">Local Mode</a><li>
              <li><a href="deployment-standalone.html">Standalone Mode</a></li>
              <li><a href="deployment-yarn.html">YARN Mode</a></li>
              <li><a href="deployment-docker.html">Docker Mode</a><li>
              <li class="divider"></li>
              <li><a href="deployment-ui-authentication.html">UI Authentication</a></li>
              <li><a href="deployment-ha.html">High Availability</a></li>
              <li><a href="deployment-msg-delivery.html">Reliable Message Delivery</a></li>
              <li><a href="deployment-configuration.html">Configuration</a></li>
              <li><a href="deployment-resource-isolation.html">Resource Isolation</a></li>
              <li class="divider"></li>
              <li><a href="deployment-security.html">YARN Security Guide</a></li>
            </ul>
          </li>

          <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">Programming Guide<b class="caret"></b></a>
            <ul class="dropdown-menu">
              <li><a href="dev-write-1st-app.html">Write Your 1st App</a></li>
              <li><a href="dev-custom-serializer.html">Customized Message Passing</a></li>
              <li class="divider"></li>
              <li><a href="api/scala/index.html">Scala API</a></li>
              <li><a href="api/java/index.html">Java API</a></li>
              <li><a href="dev-rest-api.html">RESTful API</a></li>
              <li class="divider"></li>
              <li><a href="dev-connectors.html">Gearpump Connectors</a></li>
              <li class="divider"></li>
              <li><a href="dev-storm.html">Storm Compatibility</a></li>
              <!--
              <li><a href="dev-samoa.html">Samoa Compatibility</a></li>
              <li class="divider"></li>
              <li><a href="dev-iot.html">Gearpump with IoT</a></li>
              -->
            </ul>
          </li>

          <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">More<b class="caret"></b></a>
            <ul class="dropdown-menu">
              <li><a href="how-to-contribute.html">How to Contribute</a></li>
              <li><a href="coding-style.html">Coding Style</a></li>
              <li class="divider"></li>
              <li><a href="faq.html">FAQ</a><li>
              <li><a href="about.html">About</a></li>
            </ul>
          </li>
        </ul>
      </div>
    </div>
  </div>

  <div class="container" id="content">
   
    <h1 class="title">Maven Setting</h1>
   

   <p>To program against this version, you need to add below artifact dependencies to your application&#8217;s Maven setting:</p>

<figure class="highlight"><pre><code class="language-xml" data-lang="xml"><span class="nt">&lt;dependencies&gt;</span>
<span class="nt">&lt;dependency&gt;</span>
<span class="nt">&lt;groupId&gt;</span>com.github.intel-hadoop<span class="nt">&lt;/groupId&gt;</span>
<span class="nt">&lt;artifactId&gt;</span>gearpump-core_2.11<span class="nt">&lt;/artifactId&gt;</span>
<span class="nt">&lt;version&gt;</span>0.8.0<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
<span class="nt">&lt;dependency&gt;</span>
<span class="nt">&lt;groupId&gt;</span>com.github.intel-hadoop<span class="nt">&lt;/groupId&gt;</span>
<span class="nt">&lt;artifactId&gt;</span>gearpump-streaming_2.11<span class="nt">&lt;/artifactId&gt;</span>
<span class="nt">&lt;version&gt;</span>0.8.0<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
<span class="nt">&lt;/dependencies&gt;</span></code></pre></figure>

<p>And you will need to add following repositories to get above dependencies resolved.</p>

<figure class="highlight"><pre><code class="language-xml" data-lang="xml"><span class="nt">&lt;repositories&gt;</span>
<span class="nt">&lt;repository&gt;</span>
<span class="nt">&lt;id&gt;</span>releases-oss.sonatype.org<span class="nt">&lt;/id&gt;</span>
<span class="nt">&lt;name&gt;</span>Sonatype Releases Repository<span class="nt">&lt;/name&gt;</span>
<span class="nt">&lt;url&gt;</span>http://oss.sonatype.org/content/repositories/releases/<span class="nt">&lt;/url&gt;</span>
<span class="nt">&lt;/repository&gt;</span>

<span class="nt">&lt;repository&gt;</span>
    <span class="nt">&lt;id&gt;</span>akka-data-replication<span class="nt">&lt;/id&gt;</span>
    <span class="nt">&lt;name&gt;</span>Patrik at Bintray<span class="nt">&lt;/name&gt;</span>
    <span class="nt">&lt;url&gt;</span>http://dl.bintray.com/patriknw/maven<span class="nt">&lt;/url&gt;</span>
<span class="nt">&lt;/repository&gt;</span>

<span class="nt">&lt;repository&gt;</span>
    <span class="nt">&lt;id&gt;</span>cloudera<span class="nt">&lt;/id&gt;</span>
    <span class="nt">&lt;name&gt;</span>Cloudera repo<span class="nt">&lt;/name&gt;</span>
    <span class="nt">&lt;url&gt;</span>https://repository.cloudera.com/artifactory/cloudera-repos<span class="nt">&lt;/url&gt;</span>
<span class="nt">&lt;/repository&gt;</span>

<span class="nt">&lt;repository&gt;</span>
    <span class="nt">&lt;id&gt;</span>vincent<span class="nt">&lt;/id&gt;</span>
    <span class="nt">&lt;name&gt;</span>vincent<span class="nt">&lt;/name&gt;</span>
    <span class="nt">&lt;url&gt;</span>http://dl.bintray.com/fvunicorn/maven<span class="nt">&lt;/url&gt;</span>
<span class="nt">&lt;/repository&gt;</span>

<span class="nt">&lt;repository&gt;</span>
    <span class="nt">&lt;id&gt;</span>non<span class="nt">&lt;/id&gt;</span>
    <span class="nt">&lt;name&gt;</span>non<span class="nt">&lt;/name&gt;</span>
    <span class="nt">&lt;url&gt;</span>http://dl.bintray.com/non/maven<span class="nt">&lt;/url&gt;</span>
<span class="nt">&lt;/repository&gt;</span>

<span class="nt">&lt;repository&gt;</span>
    <span class="nt">&lt;id&gt;</span>maven-repo<span class="nt">&lt;/id&gt;</span>
    <span class="nt">&lt;name&gt;</span>maven-repo<span class="nt">&lt;/name&gt;</span>
    <span class="nt">&lt;url&gt;</span>http://repo.maven.apache.org/maven2<span class="nt">&lt;/url&gt;</span>
<span class="nt">&lt;/repository&gt;</span>

<span class="nt">&lt;repository&gt;</span>
    <span class="nt">&lt;id&gt;</span>maven1-repo<span class="nt">&lt;/id&gt;</span>
    <span class="nt">&lt;name&gt;</span>maven1-repo<span class="nt">&lt;/name&gt;</span>
    <span class="nt">&lt;url&gt;</span>http://repo1.maven.org/maven2<span class="nt">&lt;/url&gt;</span>
<span class="nt">&lt;/repository&gt;</span>

<span class="nt">&lt;repository&gt;</span>
    <span class="nt">&lt;id&gt;</span>maven2-repo<span class="nt">&lt;/id&gt;</span>
    <span class="nt">&lt;name&gt;</span>maven2-repo<span class="nt">&lt;/name&gt;</span>
    <span class="nt">&lt;url&gt;</span>http://mvnrepository.com/artifact<span class="nt">&lt;/url&gt;</span>
<span class="nt">&lt;/repository&gt;</span>

<span class="nt">&lt;/repositories&gt;</span></code></pre></figure>

<p>For SBT the configuration above, adding the two external modules as well, is equivalent to the following:</p>

<div class="highlight"><pre><code>resolvers ++= Seq(
  "Sonatype releases" at "http://oss.sonatype.org/content/repositories/releases/",
  "Patrik at Bintray" at "http://dl.bintray.com/patriknw/maven",
  "Cloudera repo" at "https://repository.cloudera.com/artifactory/cloudera-repos",
  "vincent" at "http://dl.bintray.com/fvunicorn/maven",
  "non" at "http://dl.bintray.com/non/maven",
  "Maven repo" at "http://repo.maven.apache.org/maven2",
  "Maven1 repo" at "http://repo1.maven.org/maven2",
  "Maven2 repo" at "http://mvnrepository.com/artifact"
)

val gearpumpVersion = "0.8.0"

libraryDependencies ++= Seq(
  "com.github.intel-hadoop"                %  "gearpump-core_2.11"         % gearpumpVersion,
  "com.github.intel-hadoop"                %  "gearpump-streaming_2.11"    % gearpumpVersion,
  "com.github.intel-hadoop"                %% "gearpump-external-kafka"    % gearpumpVersion,
  "com.github.intel-hadoop"                %% "gearpump-external-hbase"    % gearpumpVersion
)
</code></pre></div>

<p>and you can put this in your <code>build.sbt</code> buildfile.</p>


  </div> <!-- /container -->

  <script src="js/vendor/jquery-2.1.4.min.js"></script>
  <script src="js/vendor/bootstrap-3.3.5.min.js"></script>
  <script src="js/vendor/anchor-1.1.1.min.js"></script>
  <script src="js/main.js"></script>

  <!-- MathJax Section -->
  <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
      TeX: { equationNumbers: { autoNumber: "AMS" } }
    });
  </script>
  <script>
    // Note that we load MathJax this way to work with local file (file://), HTTP and HTTPS.
    // We could use "//cdn.mathjax...", but that won't support "file://".
    (function(d, script) {
      script = d.createElement('script');
      script.type = 'text/javascript';
      script.async = true;
      script.onload = function(){
        MathJax.Hub.Config({
          tex2jax: {
            inlineMath: [ ["$", "$"], ["\\\\(","\\\\)"] ],
            displayMath: [ ["$$","$$"], ["\\[", "\\]"] ],
            processEscapes: true,
            skipTags: ['script', 'noscript', 'style', 'textarea', 'pre']
          }
        });
      };
      script.src = ('https:' == document.location.protocol ? 'https://' : 'http://') +
        'cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML';
      d.getElementsByTagName('head')[0].appendChild(script);
    }(document));
  </script>
</body>
</html>
