IDEA自动导入provided的依赖

小明 2025-05-03 10:33:33 15

index.php/tags-41973.html" class="superseo">���近在学习flink 流程序,在写demo程序的时候依赖flink依赖,依赖的包在flink集群里面是自己已经提供了的,在导入的时候配置为provided,像下面这样,以使打包的时候不用打到最终的程序包里面。

        
            org.apache.flink
            flink-streaming-java
            ${flink.version}
            provided
        
        
            org.apache.flink
            flink-clients
            ${flink.version}
            provided
        

在idea里面编译调试的时候,由于maven依赖被标记为provided,依赖没有自动导入,需要在idea中 做一下配置,在执行的时候idea才会自动帮忙导入。否则会报如下错误。

java.lang.NoClassDefFoundError: org/apache/flink/api/common/functions/FlatMapFunction
	at java.lang.Class.getDeclaredMethods0(Native Method)
	at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
	at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
	at java.lang.Class.getMethod0(Class.java:3018)
	at java.lang.Class.getMethod(Class.java:1784)
	at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
	at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: org.apache.flink.api.common.functions.FlatMapFunction
	at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 7 more

按项目配置

按项目配置,只在配置的项目上起作用。

配置步骤如下截图:

默认配置

如果希望所有项目maven依赖依赖类型为provided的时候,idea都帮忙自动导入,配置默认自动导入provided依赖即可,配置步骤如下图。

The End
微信