

# Java项目模板

从几个简单的步骤开始使用Flink Java程序。

## 要求

唯一的要求是**Maven 3.0.4**(或更高)和**Java 8.x** 安装。

## 创建项目

使用以下命令之一 **create a project**:

*   [使用 **Maven archetypes**](#maven-archetype)
*   [运行 **quickstart script**](#quickstart-script)



```
 $ mvn archetype:generate                               \
      -DarchetypeGroupId=org.apache.flink              \
      -DarchetypeArtifactId=flink-quickstart-java      \
      -DarchetypeVersion=1.7.1 
```



这允许您将新创建的项目命名为。它会交互式地询问groupId、artifactId和包名。



```
 $ curl https://flink.apache.org/q/quickstart.sh | bash -s 1.7.1 
```



## 检查项目

您的工作目录中将有一个新目录。如果您使用了 _curl_ 方法，则该目录称为`quickstart`。否则，它有您的`artifactId`的名称:



```
$ tree quickstart/
quickstart/
├── pom.xml
└── src
    └── main
        ├── java
        │   └── org
        │       └── myorg
        │           └── quickstart
        │               ├── BatchJob.java
        │               └── StreamingJob.java
        └── resources
            └── log4j.properties
```



示例项目是一个**Maven项目**，其中包含两个类: _StreamingJob_ 和 _BatchJob_ 是_ DataStream_ 和 _DataSet_ 程序的基本框架程序。_main_ 方法是程序的入口点，用于ide内测试/执行和适当的部署。

我们建议您**将这个项目导入您的IDE**中进行开发和测试。IntelliJ IDEA支持Maven项目的开箱即用。如果您使用Eclipse， [m2e plugin](http://www.eclipse.org/m2e/)允许 [import Maven projects](http://books.sonatype.com/m2eclipse-book/reference/creating-sect-importing-projects.html#fig-creating-import)。默认情况下，一些Eclipse包包含该插件，另一些则需要手动安装。

_Mac OS X users_ 注意:Java的默认JVM堆大小对于Flink来说可能太小了。你必须手动增加它。在Eclipse中，选择`Run Configurations -&gt; Arguments` ;并写入`VM Arguments`框:`-Xmx800m`。在IntelliJ IDEA中，建议通过`Help | Edit Custom VM Options` 菜单来改变JVM选项。有关详细信息，请参见[this article](https://intellij-support.jetbrains.com/hc/en-us/articles/206544869-Configuring-JVM-options-and-platform-properties)。

## 构建项目

如果您想**build/package your project**，请转到您的项目目录并运行‘`mvn clean package`’ 命令。您将找到一个JAR文件，其中包含您的应用程序，以及您可能作为依赖项添加到应用程序中的连接器和库:`target/&lt;artifact-id&gt;-&lt;version&gt;.jar`。

**注意:** 如果您使用与 _StreamingJob_ 不同的类作为应用程序的主类/入口点，我们建议您更改`pom.xml`中的`mainClass`设置。相应的xml的文件。这样，Flink就可以从JAR文件运行应用程序，而无需额外指定主类。

## 下一个步骤

写您的应用程序!

如果您正在编写流应用程序，并且正在寻找编写内容的灵感，那么可以参考[Stream Processing application Tutorial](//ci.apache.org/projects/flink/flink-docs-release-1.7/tutorials/datastream_api.html#writing-a-flink-program)。

如果您正在编写批处理应用程序，并且正在寻找编写的灵感，那么可以参考[Batch Application Examples](//ci.apache.org/projects/flink/flink-docs-release-1.7/dev/batch/examples.html)。

有关API的完整概述，请查看 [DataStream API](//ci.apache.org/projects/flink/flink-docs-release-1.7/dev/datastream_api.html) 和[DataSet API](//ci.apache.org/projects/flink/flink-docs-release-1.7/dev/batch/index.html)小节。

[Here](// ci.apache.org/projects/flink/flink-docs-release1.7 /tutorials/local_setup.html)您可以了解如何在本地集群上运行IDE之外的应用程序。

如果您有任何问题，请访问我们的[邮件列表](http://mail-archives.apache.org/mod_mbox/flink-user/)。我们很乐意提供帮助。

