在 Java 中,如果您将源代码 (.java) 文件与类 (.class) 一起打包到 jar 中,大多数 IDE(如 eclipse)将显示代码完成的 javadoc 注释。
IIRC 很少有像 JMock 这样的开源项目。
假设我已经将我的 API 代码与实现代码完全分开,这样我就有了类似 myproject-api.jar 和 myproject-impl.jar 的东西,我有什么理由不应该将源代码放在我的 myproject-api 中。 jar ?
因为性能?尺寸?
为什么其他项目不这样做?
编辑:除了 Maven 下载问题之外,将我的源代码放入类 jar 以支持尽可能多的开发人员(是否是 Maven)是否会造成任何伤害?
最佳答案
一般是因为分布原因:
如果您保留单独的二进制文件和源代码,您可以只下载您需要的。
例如:
myproject-api.jar
和myproject-impl.jar
myproject-api-src.jar
和myproject-impl-src.jar
myproject-api-docs.zip
和myproject-impl-docs.zip
现在,m2eclipse - Maven for Eclipse可以download sources也自动
mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true
现在,它也可以generate the right pom当任何人声明对您的 jar 的依赖时,防止分发源或 javadoc jar。
OP评论:
also can't imagine download size being an issue (i mean it is 2010 a couple 100k should not be a problem).
实际上它(即“尺寸”)是个问题。
Maven 已经患有“第一次构建时下载了一半的互联网”综合症。
如果下载 还 源和/或 javadoc,那开始真的很烦人。
此外,“分发”方面包括部署:在 webapp server, there is no real advantage to deploy a jar with sources in it 中.
最后,如果您真的需要将源代码与二进制文件相关联,这 SO question on Maven could help .
关于java - 将 API 代码与类一起放入 JAR 中有什么缺点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2888299/