在存档文件中包含源

Posted

技术标签:

【中文标题】在存档文件中包含源【英文标题】:Including Source in Archive File 【发布时间】:2010-01-07 18:15:39 【问题描述】:

我正在考虑将源代码包含在我的存档文件(EAR、JAR、WAR)中,这样我们就可以看到部署的应用程序的样子。 这显然会使档案变得更大。归档文件的大小是否会影响应用服务器的性能?这是个好主意吗?

【问题讨论】:

【参考方案1】:

这是您的问题的另一种解决方案,可以代替(将源代码放在 .jar 中)或除此之外:将源代码管理修订 ID 指定到 .jar。您可以在清单文件或属性文件中指定它。

源代码控制修订 ID 是与源代码控制系统上项目的根相关联的当前 ID。它在 SVN、Git 和大多数现代源代码控制系统中很容易获得。在旧系统 (CVS) 中,您必须首先创建一个(命名的)标签,可能使用当前日期和时间(以确保唯一性)。修订号可让您从源代码管理中检索获得存档的确切快照,因此当您修复错误时,您将在正确的源上修复它们。

这种技术可以让您节省空间 - 您不需要发送整个源目录。

但是,即使源包含在存档中,指定此数字仍然是一个好主意,因为它一致指定了创建存档的历史点。手动将存档中的源与源代码控制中的源进行比较是一件很痛苦的事情。

【讨论】:

【参考方案2】:

它确实会影响性能,因为存档索引中有更多条目,但这不会太糟糕,您会将源放在它自己的子目录中。或者您可以制作一个源存档并将其与其他文件一起铲除。那将是我的选择。当然,如果这是 GPL 发行版,您必须明确说明源的位置。

【讨论】:

以上是关于在存档文件中包含源的主要内容,如果未能解决你的问题,请参考以下文章

如何在 WAR 存档中包含应用程序配置文件?

获取 zip 文件中包含的文件的文件列表

C# 压缩文件。如何提取或跳过名称中包含无效字符的文件?

以数组形式组织的 PHP Zip 存档

您的应用程序包签名中的权利与您的配置文件中包含的权利不匹配

访问 .zip 存档中的文件而不提取它们