使用 intellij 创建 twitter heron 项目的正确方法

correct way to create twitter heron project using intellij

我正在尝试使用 IntelliJ IDEA 启动一个 heron 项目(或移植现有的 storm 项目),但不幸的是我无法让它工作。

我已经测试了 Heron Docs to upgrade from storm 中所有建议的说明,但是在根据文档更改 POM.xml 文件后,我从 basic heron 类 和方法中得到了一堆 cannot find symbol虽然使用 Maven 编译并添加库 Jars 没有帮助(就像以前使用 storm 一样)。

我还尝试使用 setup-intellij.sh 脚本来制作一个 intellij 项目,但不幸的是它因错误而停止:

null failed: _pex failed: error executing command
bazel-out/local_linux-fastbuild/bin/3rdparty/pex/_pex --entry-point heron.shell.src.python.main bazel-out/local_linux-fastbuild/bin/heron/shell/src/python/heron-shell.pex ...
(remaining 1 argument(s) skipped)

我想知道使用 intelliJ IDEA 创建工作项目的最简单方法是什么。

我是否必须向 intelliJ 添加 storm 库和 heron 库?我怎样才能附加所需的库以便它可以正确编译?

如有任何建议,我们将不胜感激。

使用 backtype.storm.* 而不是 com.twitter.heron.api.* 来导入 类。 这些包都存在于 heron 库中。 只需要添加如下依赖:

    <dependency>
        <groupId>com.twitter.heron</groupId>
        <artifactId>heron-storm</artifactId>
        <version>0.14.0</version>
    </dependency>

IntelliJ 中有一个苍鹭项目 运行,here
pom.xml内容为:

<groupId>io.streaml.heron.streamlet</groupId>
    <artifactId>heron-java-streamlet-api-example</artifactId>
    <version>latest</version>

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <heron.version>0.17.2</heron.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.twitter.heron</groupId>
            <artifactId>heron-api</artifactId>
            <version>${heron.version}</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <mainClass></mainClass>
                        </manifest>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
       </plugins>
    </build>