你如何在你的java软件中包含3rdparty lib /软件?

时间:2011-04-19 16:28:44

标签: java

我现在正在设置一个java项目。在过去,我们总是包括来自第三方的所有内容(解压缩),例如ant,junit,jfreechart和其他内容。我想知道是否可以只使用那些相关的.jar文件而不是我们的软件版本的所有内容?然后我们可以得到一个更小,更整洁的版本。那些第三方图书馆许可证不允许我们这样做吗?你的方式是什么?感谢,

3 个答案:

答案 0 :(得分:0)

如果他们的许可证表明您应该使用来源分发衍生品,那么您有义务依法执行。

另一个问题是他们是否真的强迫这样做。据我记得GPL,您应该根据需要分发来源,但还有另一种方式 - 您必须使用户可以轻松获得来源。所以你可以放弃你的可分发资源。

无论如何,你应该查看许可证。

编辑:

如果您决定将整个程序打包到单个jar中,我建议Proguard。它是java优化器,收缩器等等 - 一体化!要将所有内容打包到一个jar中,只需将所有jar(程序和库)指定为程序jar,并仅指定一个jar作为输出。通常它工作正常。

答案 1 :(得分:0)

如果可能的话,你真的想保留单独的罐子。查看maven appassembler插件。它以一种可控的方式为您安装“无法解决的”安装工作做得很好。在结果中,您将拥有一个非常简单的“repo”目录,其中包含所有依赖项。

答案 2 :(得分:0)

我使用maven-assembly-plugin为每个应用程序构建一个jar。该插件快速处理解压缩所有库罐并将整个批次重新组合成一个罐子的大惊小怪。它还支持使用指定的主类编写清单,这使得从命令行运行应用程序变得简单(比指定一个类路径参数要简单得多)。