我想知道Maven如何与TAR集成:它是否只是呼唤您的操作系统' TAR的原生版本,或者它的" / lib"是否有内部打包版本? Jars在某处,还是在内部或其他地方使用JTar?
请不要发布猜测或猜测回复 - 我已经做了很多的猜测和猜测,我已经尝试排除一些可能性。例如,我重命名了OS-X" tar"和" bsdtar"可执行文件,但是Maven仍然可以进行汇编阶段,所以我猜测Maven可能没有调用#34; / usr / bin"中的操作系统tar实用程序。
Ergo,作为最后一搏,我希望有人知道可以给我一个坚实,明确的答案;但没有答案胜过十几个猜测。
为什么我提出的问题并不重要,只会让人们发布切实的答案'不回答这个问题。我无法在Maven文档或任何论坛上找到明确的答案。
另外,我不需要知道如何使用Maven制作tar或gzip文件。我知道如何告诉Maven这样做。我不知道Maven是如何内部实现来生成Tar文件格式的,我需要找出答案。
答案 0 :(得分:0)
不,使用Linux TAR实用程序无法创建TAR文件。它由代码本身完成,使用Apache Commons Compress。
要创建TAR文件,您可以使用maven-assembly-plugin
格式tar
。这个插件将档案的创建委托给plexus-archiver
,tar
本身使用Apache Commons Compress来创建档案。该库实现了一个用于处理归档的完整API,它不依赖于OS实用程序。
请注意,这不是特定于TAR文件。对于其他类型的存档也是如此,例如ZIP。
相关源代码:
maven-assembly-plugin
asks for the archive to be created plexus-archiver
文件,the creation of a TAR archiver is made n
TarArchiver
的实例
TarArchiveOutputStream
中的Apache Commons Compress撰写的。该类负责将字节数据写入文件。