IDEA在使用maven時可能會出現找不到類的情況,
這邊直接說結論:maven dependcy scope為 provided時,繼承外部依賴的抽象類,如 class Udf1 extend UDF {}
此時加載外部類會出問題,但並不是報ClassNotFound,而是此階段在類初始化早期,
而scope 為provided,也即在project structure 的dependencies 中,被標記為provied的包,在運行時不會有classpath,
這就導致類加載時鏈接外部類失敗,但是控制台只會簡單報出“找不到或無法加載”。
(下圖為印證自己想法后去掉了provided,重新sync后的結果)
如果scope 為provided ,則在classpath中不會包含該項的jar包。
當然你可能會注意到奇怪的現象,就是,此時在test文件夾中的類是不會受影響的。
這也是maven scope的定義之一。