java - 将 API 代码与类一起放入 JAR 中有什么缺点吗?

标签 java eclipse api jar javadoc

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

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

假设我已经将我的 API 代码与实现代码完全分开,这样我就有了类似 myproject-api.jar 和 myproject-impl.jar 的东西,我有什么理由不应该将源代码放在我的 myproject-api 中。 jar ?

因为性能?尺寸?

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

编辑:除了 Maven 下载问题之外,将我的源代码放入类 jar 以支持尽可能多的开发人员(是否是 Maven)是否会造成任何伤害?

最佳答案

一般是因为分布原因:

如果您保留单独的二进制文件和源代码,您可以只下载您需要的。
例如:

  • myproject-api.jarmyproject-impl.jar
  • myproject-api-src.jarmyproject-impl-src.jar
  • myproject-api-docs.zipmyproject-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/

相关文章:

java.lang.IllegalStateException : Neither BindingResult nor plain target object for bean name 'register' available as request attribute

api - Youtube API v3 - 从视频中获取信息

php - 使用 Graph API 更改旧 Facebook 帖子的隐私

java - Selenium 网格提供异常 :PROXY_REREGISTRATION

java - 如何使用java编程语言和jsp搭建个人服务器

java - 创建数据库 View 与创建 Hibernate 映射 - 性能

java - Eclipse+FindBugs - 排除过滤器文件不起作用

c++ - 如何在同时使用 Intel C++ 和 CUDA C++ 的 Eclipse-nsight 中创建项目?

Android编程在eclipse中不起作用

javascript - 处理多个 api 响应中不同键的最佳方式