12

我在这里按照如何在 Maven 中创建 ZIP 存档的答案:https ://stackoverflow.com/a/2514677/1395165 并有几个后续问题:

要排除目录的 ZIP 内容:

如示例中所示:

<fileSet>
    <directory>${project.basedir}/src/export</directory>
    <useDefaultExcludes>true</useDefaultExcludes>
</fileSet>

在我得到的 ZIP 中

src
  export
     Dir1
     Dir2

但我只想拥有

Dir1
Dir2 

在邮编。那可能吗?

输出文件名

输出文件名使用 .zip 扩展名创建。是否可以在 Maven 中覆盖其他扩展名(比如 .abc)?

4

3 回答 3

17

outputDirectory 选项可用于更改程序集中将文件输出到的目录 - 这应该可以满足您的需要:

<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<id>bin</id>
<formats>
    <format>zip</format>
</formats>
<fileSets>
    <fileSet>
        <directory>${project.basedir}/ScriptedBuild/rConnect/extract/</directory>
        <useDefaultExcludes>true</useDefaultExcludes>
        <outputDirectory>/</outputDirectory>
    </fileSet>
</fileSets>
</assembly> 
于 2012-06-06T01:37:59.367 回答
1

将 includeBaseDirectory 设置为 false - 请参阅http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html

于 2012-05-15T05:14:14.960 回答
0

利用

<assembly ...
  <baseDirectory>/</baseDirectory>

<fileSet>
  <outputDirectory>/</outputDirectory>

这会将所有文件放在 zip 文件的根目录中。

BaseDirectory 将 zip 中的目录设置为用于所有文件,就像将其添加到所有路径一样。这样,当您在不先创建目录的情况下对其进行压缩时,它不会污染您当前的工作目录。

OutputDirectory 设置 zip 文件中的目录。BaseDirectory 仍然“附加”于此。所以 BaseDirectory =/project-1.2.3和 OutputDirectory/srcproject-1.2.3/src/在 zip 中创建。

http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html

baseDirectory String 设置生成的程序集存档的基本目录。如果未设置且 includeBaseDirectory == true,则将使用 ${project.build.finalName}。(从 2.2-beta-1 开始)

outputDirectory String 设置相对于程序集根目录的根目录的输出目录。例如,“log”会将指定的文件放在日志目录中。

于 2018-11-15T00:40:58.997 回答