Java Maven build缺少包链接
我在使用Maven时遇到问题。我有一个ApacheFlink项目,想在我的服务器上运行它。它在本地运行正常,但在服务器上中止,并出现以下错误: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; 我
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
)。我将更新我的答案。