将API代码与类一起放入JAR是否有任何不利之处?

Ada*_*ent 8 java eclipse api javadoc jar

在Java中,如果将源代码(.java)文件与类( .class)一起打包到jar中,大多数IDE都会像eclipse一样显示代码完成的javadoc注释.

IIRC很少有像JMock这样的开源项目.

让我说我已经干净地将我的API代码与实现代码分开,以便我有类似myproject-api.jar和myproject-impl.jar的东西,我有什么理由不把源代码放在我的myproject-api.jar中吗?

因为性能?尺寸?

为什么其他项目不这样做?

编辑:除了Maven下载问题,将我的源代码放入类jar以支持尽可能多的开发人员(maven与否)会有什么损害吗?

Von*_*onC 6

一般因为分配原因:

如果您保留单独的二进制文件和来源,则只能下载所需内容.
例如:

  • myproject-api.jarmyproject-impl.jar
  • myproject-api-src.jarmyproject-impl-src.jar
  • myproject-api-docs.zipmyproject-impl-docs.zip

现在,m2eclipse - Maven for Eclipse也可以自动下载源代码

mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true 
Run Code Online (Sandbox Code Playgroud)

现在,它还可以生成正确的pom,以防止在任何人声明对jar的依赖时分发源或javadoc jar.
OP意见:

也无法想象下载大小是一个问题(我的意思是它是2010年一对夫妇100k应该不是一个问题).

那么实际上它(即"大小)是个问题.
Maven的从已经遭受'一半下载互联网上的第一次构建’综合症.
如果下载源和/或的javadoc,这开始成为真正烦人.

此外,"分发"方面包括部署:在webapp服务器中,部署带有源的jar没有真正的优势.

最后,如果您确实需要将源与二进制文件关联起来,那么Maven上的这个SO问题可能有所帮助.