当前位置: 首页 > 面试题库 >

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

严远
2023-03-14
问题内容

在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-Eclipse的Maven也可以自动下载源

mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true

现在,当有人声明对jar的依赖项时,它也可以生成正确的pom,以防止分发源或javadoc jar。
OP评论:

也无法想象下载大小是一个问题(我的意思是现在是2010年,一对10万应该不是问题)。

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

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



 类似资料:
  • 这是一个由之前的代码片段组合在一起的源程序文件。 千万不要忘了将 freemarker.jar 放到 CLASSPATH 中。 import freemarker.template.*; import java.util.*; import java.io.*; public class Test { public static void main(String[] args) thr

  • 我已经将本文中的主要测试代码(此处是原始代码的链接)转换为处理。在测试它时,我发现它适用于低于10,000,000的数字,但它跳过了一些高于该数字的素数。 这是我的翻译(除了表格是相同的)。 编辑:我发现了问题。处理的int(long)转换为浮点数,然后转换为int,这会导致舍入错误。使用(int)long修复了问题。这是代码的工作(并且稍微优化)版本。 此版本仅适用于有符号整数。由于某种原因简单

  • 问题内容: 我已经看到以下将JavaScript代码放入标签中的方法: 我了解尝试放置有效URL而不只是JavaScript代码的想法,以防万一用户未启用JavaScript。但是出于讨论的目的,我需要假定JavaScript已启用(没有JavaScript,他们将无法登录)。 我个人喜欢选项2,因为它使您可以看到要运行的内容–在调试将参数传递到函数的位置时特别有用。我已经使用了很多,还没有发现浏

  • 我有一个wordpress插件,可以上传用户头像。我正在尝试使用一段显示缩略图的代码,并将其放在一个短代码中,这样我就可以将缩略图放在网站的任何位置。 我对php比较陌生,我知道如何为wordpress启动一个短代码,但我不知道如何构造短代码来承载php。有谁能给我提个建议吗? php下面的代码是插件文件的原文: 我想放在短代码中的代码如下,基本上它显示了缩略图。我试图用这个在functions.

  • 所以我正在做一个项目,其中有一个数据库是我用Symfony5创建的,我使用easyAdmin作为 我尝试将html代码放置为: ,但网站显示给我的是: ,而不仅仅是测试。是因为它是一根绳子吗?我如何设法显示只是测试? 谢谢

  • 问题内容: 我在Java项目中添加了一些外部库(在netbeans中)。 是否可以将外部jar库放入Java存档(而不是将其放入单独的(例如)“ lib”目录)? 问题答案: 当然可以。可以使用包含所有依赖项的“捆绑罐”下载一些开源项目。 您需要提取所有jar,然后将其再次打包到一个文件中。在此处 可以看到使用Ant进行此操作的示例。