Maven 2 使用Maven创建tar.gz存档

Maven 2 使用Maven创建tar.gz存档,maven-2,archive,maven-assembly-plugin,Maven 2,Archive,Maven Assembly Plugin,我有一个Maven项目,在src/main目录下有一个子目录,名为output。此文件夹需要打包到tar.gz中。按如下方式使用程序集插件时: 从pom.xml文件: <build> <finalName>front</finalName> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <versi

我有一个Maven项目,在src/main目录下有一个子目录,名为output。此文件夹需要打包到tar.gz中。按如下方式使用程序集插件时:

从pom.xml文件:

<build>
<finalName>front</finalName>
<plugins>
    <plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.2-beta-5</version>
    <configuration>
      <descriptors>
        <descriptor>src/main/assembly/assembly.xml</descriptor>
      </descriptors>
    </configuration>
  </plugin>
  </plugins>
</build>

前面
maven汇编插件
2.2-β-5
src/main/assembly/assembly.xml
assembly.xml文件:

<assembly>
    <id>bundle</id> 
    <formats>
        <format>tar.gz</format>
    </formats>
    <fileSets>
        <fileSet>
            <directory>src/main/output</directory>
        </fileSet>
</fileSets>
</assembly>

捆
tar.gz
src/main/output

我的问题是,我正在尝试的结果将与运行tar实用程序本身一样,这意味着在提取时获取输出目录及其所有内容。我得到的是包含所有项目路径的输出文件夹-name/src/main/output。

尝试在中设置
outputDirectory
。这将删除src/main/output目录

<fileSet>
  <directory>src/main/output</directory>
  <outputDirectory>.</outputDirectory>
</fileSet>

您需要将程序集描述符配置为不包含基本目录,并为
文件集配置输出目录

<assembly>
  <id>bundle</id>
  <formats>
    <format>tar.gz</format>
  </formats>
  <includeBaseDirectory>false</includeBaseDirectory>
  <fileSets>
    <fileSet>
      <directory>src/main/output</directory>
      <outputDirectory>output</outputDirectory>
    </fileSet>
  </fileSets>
</assembly>
参考

只想补充一点,如果需要选择单个文件,可以使用include/include:
<assembly>
  <id>bundle</id>
  <formats>
    <format>tar.gz</format>
  </formats>
  <includeBaseDirectory>false</includeBaseDirectory>
  <fileSets>
    <fileSet>
      <directory>src/main/output</directory>
      <outputDirectory>output</outputDirectory>
    </fileSet>
  </fileSets>
</assembly>
$ mvn clean assembly:assembly ... $ cd target $ tar zxvf Q3330855-1.0-SNAPSHOT-bundle.tar.gz output/ output/hello.txt