

# Java项目模板

> 译者：[flink.sojb.cn](https://flink.sojb.cn/)


只需几个简单的步骤即可开始使用Flink Java程序。

## 要求

唯一的要求是使用**Maven 3.0.4**（或更高版本）和**Java 8.x**安装。

## 创建项目

使用以下命令之一**创建项目**：

*   [使用**Maven原型**](#maven-archetype)
*   [运行**快速入门脚本**](#quickstart-script)



```
 $ mvn archetype:generate                               \
      -DarchetypeGroupId=org.apache.flink              \
      -DarchetypeArtifactId=flink-quickstart-java      \
      -DarchetypeCatalog=https://repository.apache.org/content/repositories/snapshots/ \
      -DarchetypeVersion=1.7-SNAPSHOT 
```



这允许您**命名新创建的项目**。它将以交互方式询问您groupId，artifactId和包名称。



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



**注意**：对于Maven 3.0或更高版本，不再可以通过命令行指定存储库（-DarchetypeCatalog）。如果要使用SNAPSHOT存储库，则需要向settings.xml添加存储库条目。有关此更改的详细信息，请参阅[Maven官方文档](http://maven.apache.org/archetype/maven-archetype-plugin/archetype-repository.html)

## 检查项目

您的工作目录中将有一个新目录。如果您使用了_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_程序的基本框架程序。的_主要_方法是程序的入口点，无论是对在-IDE测试/执行并作适当的部署。

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

_Mac OS X用户注意事项_：对于Flink，Java默认JVM堆可能太小。你必须手动增加它。在Eclipse中，选择 `Run Configurations -&gt; Arguments`并写入`VM Arguments` 框：`-Xmx800m`。在IntelliJ IDEA中，推荐的方法是从`Help | Edit Custom VM Options`菜单中更改JVM选项。有关详细信息，请参阅[此文](https://intellij-support.jetbrains.com/hc/en-us/articles/206544869-Configuring-JVM-options-and-platform-properties)

## 构建项目

如果要**构建/打包项目**，请转到项目目录并运行' `mvn clean package`'命令。您将**找到一个**包含您的应用程序**的JAR文件**，以及您可能已作为依赖项添加到应用程序的连接器和库：`target/&lt;artifact-id&gt;-&lt;version&gt;.jar`。

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

## 下一步

写你的申请！

如果您正在编写流处理应用程序并且正在寻找灵感来写什么，请查看[流处理应用程序教程](https://flink.sojb.cn/tutorials/datastream_api.html#writing-a-flink-program)。

如果您正在编写批处理应用程序，并且正在寻找要编写的内容，请查看[批处理应用程序示例](https://flink.sojb.cn/dev/batch/examples.html)。

有关API的完整概述，请查看 [DataStream API](https://flink.sojb.cn/dev/datastream_api.html)和 [DataSet API](https://flink.sojb.cn/dev/batch/index.html)部分。

[在这里，](https://flink.sojb.cn/tutorials/local_setup.html)您可以了解如何在本地群集上的IDE外部运行应用程序。

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

