sbt/maven 是否在 jar 文件中包含完整的依赖项?

Does sbt/maven includes the complete dependency in jar file?

我正在为之前的项目构建一个休息 API。如果我将它作为依赖项添加到我的新 rest API 项目中,所有功能都会添加到我的 rest API jar 文件中还是只添加到我使用的方法中?我的老项目jar是181M,所以整个加到RestAPIjar?

谢谢,

如果没有特殊配置,Maven 根本不会在您的 jar 中包含任何依赖项。仅包含源代码中编译的 类(和生成的 类)。如果你想包含依赖项,你必须使用 maven-assembly-plugin 告诉 maven,如 How can I create an executable JAR with dependencies using Maven? 中所述。当您使用不同的包装时,可以根据包装类型自动包含依赖项。例如使用 war 时,所有 compile 依赖项都添加到 WEB-INF/lib.

当您包含依赖项时,总是会将完整的依赖项 jar 添加到您的 jar 中。如果需要一切,将不会进行检查。因此,您生成的 jar 将包含所有 181M 的依赖项以及新项目的源代码。