# Contributing to Apache Zeppelin ( Code ) ( 向 Apache Zeppelin 贡献( 代码 ) )
原文链接 : [http://zeppelin.apache.org/docs/0.7.2/development/howtocontribute.html](http://zeppelin.apache.org/docs/0.7.2/development/howtocontribute.html)
译文链接 : [http://www.apache.wiki/pages/viewpage.action?pageId=10031118](http://www.apache.wiki/pages/viewpage.action?pageId=10031118)
贡献者 : [小瑶](/display/~chenyao) [ApacheCN](/display/~apachecn) [Apache中文网](/display/~apachechina)
注意
**Apache Zeppelin** 是 **[Apache2 License](http://www.apache.org/licenses/LICENSE-2.0.html)** 软件。对 **Zeppelin** (源代码,文档,图像,网站)的任何贡献意味着您同意许可协议作为 **Apache2 license**。
## 配置
以下是您需要 构建 和 测试 **Zeppelin** 的一些工具。
### Software Configuration Management ( SCM ) ( 软件配置管理 )
由于 **Zeppeli** 使用 **Git** 作为其 **SCM** 系统,因此您需要在开发机器中安装 **git** 客户端。
### Integrated Development Environment ( IDE ) ( 集成开发环境 )
您可以随意使用任何您喜欢的 **IDE** ,或者您最喜爱的命令行编辑器。
### Build Tools ( 构建工具 )
要构建代码,请安装
* Oracle Java 7
* Apache Maven
## Getting the source code ( 获得源代码 )
首先,您需要 **Zeppelin** 源代码。 **Zeppelin** 的官方位置是 [http://git.apache.org/zeppelin.git](http://git.apache.org/zeppelin.git) 。
### git access
使用 **git** 获取开发机器上的源代码。
```
git clone git://git.apache.org/zeppelin.git zeppelin
```
您可能还想针对特定的分支开发。例如,对于 **branch-0.5.6 **
```
git clone -b branch-0.5.6 git://git.apache.org/zeppelin.git zeppelin
```
**Apache Zeppelin** 遵循 **[Fork&Pull](https://github.com/sevntu-checkstyle/sevntu.checkstyle/wiki/Development-workflow-with-Git:-Fork,-Branching,-Commits,-and-Pull-Request)**作为源代码管理工作流程。如果您不仅要构建 **Zeppelin** ,还可以进行任何更改,那么您需要 **fork** [**Zeppelin github** 镜像存储库](https://github.com/apache/zeppelin)并进行 **pull** 请求。
### Build ( 建立 )
```
mvn install
```
跳过测试
```
mvn install -DskipTests
```
用特定的 **spark / hadoop** 版本来构建
```
mvn install -Dspark.version=x.x.x -Dhadoop.version=x.x.x
```
为了进一步
### Run Zeppelin server in development mode ( 在开发模式下运行 Zeppelin 服务器 )
```
cd zeppelin-server
HADOOP_HOME=YOUR_HADOOP_HOME JAVA_HOME=YOUR_JAVA_HOME mvn exec:java -Dexec.mainClass="org.apache.zeppelin.server.ZeppelinServer" -Dexec.args=""
```
注意
确保您首先在 **zeppelin** 根目录上运行 **mvn clean install -DskipTests** ,否则您的服务器构建将无法在本地重现中找到所需的依赖关系。
或使用 **daemon script** ( 守护程序脚本 )
```
bin/zeppelin-daemon start
```
服务器将在 **http:// localhost:8080** 上运行。
### Generating Thrift Code ( 生成 Thrift 代码 )
[Thrift](http://thrift.apache.org/) 生成 **Zeppelin** 代码的一些部分。对于大多数的 **Zeppelin** 更改,您不需要担心这一点。但是如果您修改任何 **Thrift IDL** 文件(例如 **zeppelin-interpreter / src / main / thrift / *.thrift** ),那么您还需要重新生成这些文件,并将其更新的版本作为补丁的一部分提交。
要重新生成代码,请安装 **thrift-0.9.2** ,然后运行以下命令生成 **thrift **代码。
```
cd <zeppelin_home>/zeppelin-interpreter/src/main/thrift
./genthrift.sh
```
## Where to Start ( 从哪儿开始 )
你可以找到 **[beginner & newbie](https://issues.apache.org/jira/browse/ZEPPELIN-981?jql=project%20%3D%20ZEPPELIN%20AND%20labels%20in%20(beginner%2C%20newbie))** ( 初学者和新手 )的问题.
## Stay involved ( 保持参与 )
贡献者应加入 **Zeppelin mailing lists** 。
* [dev@zeppelin.apache.org](mailto:dev@zeppelin.apache.org)适用于想向 **Zeppelin** 提供代码的人员。订阅,取消订阅,存档。
如果您有任何问题,请在 JIRA 中创建一张 **ticket** 。
- 快速入门
- 什么是Apache Zeppelin?
- 安装
- 配置
- 探索Apache Zeppelin UI
- 教程
- 动态表单
- 发表你的段落
- 自定义Zeppelin主页
- 升级Zeppelin版本
- 从源码编译
- 使用Flink和Spark Clusters安装Zeppelin教程
- 解释器
- 概述
- 解释器安装
- 解释器依赖管理
- 解释器的模拟用户
- 解释员执行Hook(实验)
- Alluxio 解释器
- Beam 解释器
- BigQuery 解释器
- Cassandra CQL 解释器
- Elasticsearch 解释器
- Flink 解释器
- Geode/Gemfire OQL 解释器
- HBase Shell 解释器
- HDFS文件系统 解释器
- Hive 解释器
- Ignite 解释器
- JDBC通用 解释器
- Kylin 解释器
- Lens 解释器
- Livy 解释器
- Markdown 解释器
- Pig 解释器
- PostgreSQL, HAWQ 解释器
- Python 2&3解释器
- R 解释器
- Scalding 解释器
- Scio 解释器
- Shell 解释器
- Spark 解释器
- 系统显示
- 系统基本显示
- 后端Angular API
- 前端Angular API
- 更多
- 笔记本存储
- REST API
- 解释器 API
- 笔记本 API
- 笔记本资源 API
- 配置 API
- 凭据 API
- Helium API
- Security ( 安全 )
- Shiro 授权
- 笔记本 授权
- 数据源 授权
- Helium 授权
- Advanced ( 高级 )
- Zeppelin on Vagrant VM ( Zeppelin 在 Vagrant 虚拟机上 )
- Zeppelin on Spark Cluster Mode( Spark 集群模式下的 Zeppelin )
- Zeppelin on CDH ( Zeppelin 在 CDH 上 )
- Contibute ( 贡献 )
- Writing a New Interpreter ( 写一个新的解释器 )
- Writing a new Visualization (Experimental) ( 编写新的可视化(实验) )
- Writing a new Application (Experimental) ( 写一个新的应用程序( 实验 ) )
- Contributing to Apache Zeppelin ( Code ) ( 向 Apache Zeppelin 贡献( 代码 ) )
- Contributing to Apache Zeppelin ( Website ) ( 向 Apache Zeppelin 贡献(website) )