Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven build缺少包链接_Java_Maven_Intellij Idea_Apache Flink - Fatal编程技术网

Java Maven build缺少包链接

Java Maven build缺少包链接,java,maven,intellij-idea,apache-flink,Java,Maven,Intellij Idea,Apache Flink,我在使用Maven时遇到问题。我有一个ApacheFlink项目,想在我的服务器上运行它。它在本地运行正常,但在服务器上中止,并出现以下错误: java.lang.NoClassDefFoundError: org/apache/flink/examples/java/ml/util/LinearRegressionData 在我的Java项目中,我使用 import org.apache.flink.examples.java.ml.util.LinearRegressionData; 我

我在使用Maven时遇到问题。我有一个ApacheFlink项目,想在我的服务器上运行它。它在本地运行正常,但在服务器上中止,并出现以下错误:

java.lang.NoClassDefFoundError: org/apache/flink/examples/java/ml/util/LinearRegressionData
在我的Java项目中,我使用

import org.apache.flink.examples.java.ml.util.LinearRegressionData;
我在导入时使用了正确的类:

构建之后,我查看了Jar文件。包括以下课程:

/util/文件夹完全丢失。pom文件中的“我的依赖项”部分如下所示:

<dependencies>
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-java</artifactId>
        <version>0.9.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-streaming-core</artifactId>
        <version>0.9.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-clients</artifactId>
        <version>0.9.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-table</artifactId>
        <version>0.9.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-runtime</artifactId>
        <version>0.9.0</version>
    </dependency>
</dependencies>

org.apache.flink
,我认为可以在flink中添加以下行:

    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-examples</artifactId>
        <version>0.9.0</version>
    </dependency>

org.apache.flink
弗林克例子
0.9.0

但这些依赖关系无法解决。因为Maven在执行干净的安装时不会抛出错误,所以我认为这是一个依赖性问题。我以为Maven会自动包含所有使用过的导入。如何使其在我的服务器上运行?

您应该包括如下示例:


org.apache.flink

在您的情况下,应该是这样的:


org.apache.maven.plugins

您还需要将依赖项“拉入”并解压到项目中,以便使用
maven依赖项插件重新打包这些依赖项


org.apache.maven.plugins
maven依赖插件
2.9
打开
准备包装
打开
org.apache.flink
flink java示例
0.9.0
罐子
假的
${project.build.directory}/classes

如何在本地启动,如何在服务器上启动?@hzpz我使用“/lib/flink-0.9.0/bin/flink run/lib/flink-0.9.0/project/apache-linear-regression-1.0-SNAPSHOT-flink-fat-jar.jar”在服务器上启动hdfs://flink:9000/data/inputfile_apache.csv hdfs://flink:9000/data/result_apache.csv 1". 在本地,我在智能IDE中按播放按钮。谢谢你的回答。可以在pom文件中解析依赖关系,但是jar文件中仍然不包括
/util/
文件夹。在服务器上执行仍然失败。flink wiki建议运行
mvn clean
mvn install
,因此我这样做了,并将创建的jar文件移动到服务器上。否则,我如何才能打包依赖项?您可以共享完整的pom文件吗?这有助于调试。您可以在一点上使用
maven汇编插件
,在另一点上使用
maven jar插件
。您希望哪一个构建您提交的jar?(对于
maven assembly plugin
您也应该共享
src/assembly/flink fat jar.xml
),这是我通过maven导入项目时得到的文件,所以我不知道
maven assembly plugin
maven jar plugin
为什么都是活动的。他们互相妨碍吗?我只触及了项目中的依赖项部分。这是
flink fat jar.xml
:我也没有碰那个文件。您可以使用
maven汇编插件
maven jar插件
来构建jar文件
maven assembly插件
更灵活,功能强大,但使用起来也更“困难”。我建议使用
maven-jar-plugin
(在构建不同的jar文件时,您可以同时使用这两种插件——在您的情况下,我将删除
maven-assambly-plugin
)。我将更新我的答案。