Sonatype 的Maven:The Complete Reference说编译范围的依赖项位于所有类路径上,并与工件一起打包。
编译是默认范围;如果未提供范围,则所有依赖项都是编译范围的。compile 依赖项在所有类路径中都可用,并且它们被打包。
我看不出它们是打包好的。. . 这是否意味着它们应该包含在 jar 文件中?如果不是,那是什么意思?
你是对的。编译的范围依赖项不会与输出 jar 一起打包。(带有 JAR 插件)。我认为“包”是指最终产品(二进制可执行文件)。
我遇到了这个 stackOverflow 线程(如何使用 Maven 创建具有依赖项的可执行 jar?)。在这里,他们打包所有依赖项以从 Main 类构建可执行文件。在这种情况下,您需要打包的可执行文件中的所有编译时依赖项。(因为 JAVA 延迟加载不是必须的,但最好拥有所有编译时依赖项)