【问题标题】:Building custom Java library构建自定义 Java 库
【发布时间】:2011-07-13 15:28:04
【问题描述】:

我注意到许多 Javascript/jQuery 库允许开发人员自定义 .js 文件,因此仅包含用于节省带宽/页面加载时间的最低限度的功能。

现在,当我将我的 Java 库分发给客户时,有没有办法做同样的事情?如果客户只使用几个类,我不喜欢强迫客户在他们的应用程序中包含一个大型库。

理想情况下,所有内容都会打包成一个漂亮的 JAR 文件。

编辑:类似于此的内容:http://flowplayer.org/tools/download/index.html

【问题讨论】:

  • Jar 文件只是 Zip 文件......带有一些元数据。因此,可以使用 Zip 库工具从任何 Java 或 Php、任何语言构建/自定义任何 Jar

标签: java deployment jar


【解决方案1】:

大多数混淆器(包括流行的ProGuard)可以(并且默认情况下会)从 jar 中删除未使用的方法和类。他们很好地检查了主程序没有间接使用明显未使用的类。

【讨论】:

  • 我是库开发人员。我无法先验地知道我图书馆的用户将使用或不使用什么。而且我认为假设我的所有用户都知道 ProGuard 并会使用它来部署他们的应用程序是不安全的。
  • 我查看了您在编辑中链接到的页面。基于此,您似乎可以自己定义子集版本并使用 ProGuard 自己生成适当的 .jar 文件(关闭所有混淆选项,因此它只会过滤掉未使用的部分)。然后你可以告诉你的用户,如果没有一个预定义的子集满足他们的需求,他们应该使用完整的库并自己运行压缩/混淆工具。
【解决方案2】:

这是ProGuard 所做的事情之一。来自网站:

ProGuard 是一个免费的 Java 类文件收缩器、优化器、混淆器和预验证器。它检测并删除未使用的类、字段、方法和属性。

【讨论】:

  • 查看我对 Ted Hopp 回答的评论。
  • 我以为您指的是您依赖的其他第三方库,例如您只使用了 Apache Commons IO 库中的一个类。
猜你喜欢
  • 2011-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-04
  • 1970-01-01
  • 1970-01-01
  • 2023-02-24
相关资源
最近更新 更多