分离的Jars
在创建JAR文件时,我一直将源代码分开并作为可选项提供。
例如:
- Foo.jar
- Foo-source.jar
这似乎是做事情的明显方式,并且非常普遍。优点如下:
- 使二进制jar包保持较小
- 源代码可能不是开放/公共的
- 对于类加载器来说更快?(我不知道,只是猜测)
单个Jar
我开始怀疑这些优点是否总是值得的。我正在开发一个非常小的开源组件。在这个项目中,我列出的任何优点都不是问题:
- 类+源代码仍然非常小(并将保持这种状态)
- 源代码是公开的
- 此jar的类加载速度无关紧要
然而,将源代码与类放在一起确实带来了新的优点:
- 单个依赖项
- 没有源代码和类之间版本不匹配的问题
- 使用此jar的开发人员将始终拥有手头的源代码(用于调试或检查)
这些新的优点对我来说非常有吸引力。是的,我可以将源代码、类甚至javadoc压缩成一个zip文件,并让我的组件客户端决定他们想要使用哪个(就像Google在guava库中所做的那样),但这真的值得吗?
我知道这有点违反传统的软件工程逻辑,但我认为单个jar文件的优点超过了其他选择。
我错了吗?有更好的方法吗?