大佬,2.3和 flink1.13 guava 冲突解决了吗,成功的pom可以发一下吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您好!关于Apache Flink 1.13与Guava库的版本冲突问题,通常在使用特定版本的Flink时,确实可能会遇到与项目中其他依赖(如Guava)的版本不兼容情况。解决这类问题的一个常见方法是通过Maven或Gradle中的依赖管理来强制使用兼容的Guava版本,或者利用“shade”插件来重新打包冲突的库,以避免不同组件之间的冲突。
这里提供一个基本的Maven配置示例,展示如何在POM.xml文件中处理Guava冲突。请注意,具体的版本号可能需要根据您项目的实际情况和最新可用版本进行调整:
<project>
...
<properties>
<!-- 定义使用的Flink版本 -->
<flink.version>1.13.6</flink.version>
<!-- 定义期望的Guava版本,需确保与Flink和其他依赖兼容 -->
<guava.version>31.0.1-jre</guava.version>
</properties>
<dependencies>
<!-- 添加Flink依赖,并排除其自带的Guava -->
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-java</artifactId>
<version>${flink.version}</version>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 其他Flink相关依赖,如果有冲突也应做相应排除 -->
<!-- 明确指定所需的Guava版本 -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
<!-- 其他项目依赖 -->
</dependencies>
<!-- 如果需要,可以使用maven-shade-plugin来进一步处理冲突,例如重命名包 -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<relocations>
<!-- 举例:如果决定重命名Guava包以彻底避免冲突 -->
<relocation>
<pattern>com.google.common</pattern>
<shadedPattern>my.shaded.com.google.common</shadedPattern>
</relocation>
</relocations>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
...
</project>
请根据您的实际需求调整上述代码中的<flink.version>
、<guava.version>
以及是否需要使用maven-shade-plugin
进行包重命名。务必测试所选Guava版本与Flink 1.13以及其他项目依赖的兼容性。