如果文件格式是 rar,为什么 maven 程序集会创建清单?
Why maven assembly create manifest if file format is rar?
我有一个具有以下程序集描述符的 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>
如果 format
是 rar
,我会得到一个文件夹 META-INF
,其中包含 rar 清单文件。
有人可以解释为什么吗?
maven-assembly-plugin uses the maven-archiver进行包装。 maven-archiver 添加一个 MANIFEST.MF 到你的包中。
更新:
如前所述 here,您可以配置 maven-archiver-plugin 以省略 DefaultImplementationEntries
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>false</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
</plugin>
maven-assembly-plugin
does not supportrar
存档格式。引用 format
文档,支持的格式列表是:
- "zip" - Creates a ZIP file format
- "tar" - Creates a TAR format
- "tar.gz" or "tgz" - Creates a gzip'd TAR format
- "tar.bz2" or "tbz2" - Creates a bzip'd TAR format
- "jar" - Creates a JAR format
- "dir" - Creates an exploded directory format
- "war" - Creates a WAR format
当归档器遇到未知格式时,默认为 jar
,对于这种格式,默认创建 META-INF
目录。
因此,您创建的程序集不是有效的 RAR 文件。它实际上是一个 JAR 文件。
我有一个具有以下程序集描述符的 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>
如果 format
是 rar
,我会得到一个文件夹 META-INF
,其中包含 rar 清单文件。
有人可以解释为什么吗?
maven-assembly-plugin uses the maven-archiver进行包装。 maven-archiver 添加一个 MANIFEST.MF 到你的包中。
更新:
如前所述 here,您可以配置 maven-archiver-plugin 以省略 DefaultImplementationEntries
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>false</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
</plugin>
maven-assembly-plugin
does not supportrar
存档格式。引用 format
文档,支持的格式列表是:
- "zip" - Creates a ZIP file format
- "tar" - Creates a TAR format
- "tar.gz" or "tgz" - Creates a gzip'd TAR format
- "tar.bz2" or "tbz2" - Creates a bzip'd TAR format
- "jar" - Creates a JAR format
- "dir" - Creates an exploded directory format
- "war" - Creates a WAR format
当归档器遇到未知格式时,默认为 jar
,对于这种格式,默认创建 META-INF
目录。
因此,您创建的程序集不是有效的 RAR 文件。它实际上是一个 JAR 文件。