如果文件格式为rar,为什么maven程序集会创建清单?

时间:2015-10-21 08:20:28

标签: maven maven-assembly-plugin

我有一个Maven项目,其中包含以下程序集描述符:

<assembly
    xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
<id>assemby-id</id>
<formats>
    <format>rar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<files>
    <file>
        <source>${project.build.directory}/resources/file.txt</source>
        <outputDirectory>/</outputDirectory>
    </file>
</files>

如果formatrar,我会在rar中获得一个带有清单文件的文件夹META-INF

有人可以解释原因吗?

2 个答案:

答案 0 :(得分:2)

maven-assembly-plugin does not support rar存档格式。引用format文档,支持的格式列表为:

  
      
  • “zip” - 创建ZIP文件格式
  •   
  • “tar” - 创建TAR格式
  •   
  • “tar.gz”或“tgz” - 创建gzip的TAR格式
  •   
  • “tar.bz2”或“tbz2” - 创建bzip'd TAR格式
  •   
  • “jar” - 创建JAR格式
  •   
  • “dir” - 创建展开的目录格式
  •   
  • “war” - 创建WAR格式
  •   

当归档程序遇到未知格式时,默认为jar,对于此格式,默认情况下会创建META-INF目录。

因此,您创建的程序集不是有效的RAR文件。它实际上是一个JAR文件。

答案 1 :(得分:-1)

maven-assembly-plugin使用maven-archiver进行打包。 maven-archiver将一个MANIFEST.MF添加到您的包中。

更新

如上所述[{3}},您可以配置maven-archiver-plugin以省略$("#form").validate({ submitHandler: function(form) { var name1 = $('#name').val(); var email1 = $('#email').val(); var telephone1 = $('#telephone').val(); if(name1 && email1 && telephone1) { $.ajax({ type: 'post', url: '<?= base_url()?>'+'frontend/form_enquiry', data: 'name='+name1+'&email='+email1+'&telephone='+telephone1 }, success: function(msg) { alert('test message'); } }); });

DefaultImplementationEntries