使用胖罐比传统罐子有什么好处?
答案 0 :(得分:1)
Fat Jar只是一个包装,它包含了自己的jar文件中的所有应用程序依赖项,例如:如果你的应用程序A属于commons-codec-xyz.jar,那么fat jar的包装就像< / p>
A-fat.jar
-
|
|-your.app.A.class
|-your.app.B.class
|-org.apache.commons.codec.Foo.class
这样一来,如果您的app jar应该是其他人应用程序类路径的一部分,那么它会让真的难以避免在运行时发生冲突
这只是管理类路径的一种更便宜的方式,因此当您启动应用程序时,您不必处理提供类路径条目,您可以这样做
java -cp .:/path/to/A-fat.jar your.Main
更好的包装是将罐子组装成具有以下结构的某种压缩格式(.zip,.tar.gz等)
A.jar
|
|--lib/
|
|-A.jar (only A's classes)
|-common-codec-xyz.jar
这样它保持透明进入类路径也可以控制类路径的顺序,但你不能将它作为库分发,其他人可以在他们的应用程序中重用,为此你应该使用maven依赖照顾传递依赖
这一切都取决于应用,但这些是一般性的想法