【问题标题】:Creating a tar.gz archive with Maven使用 Maven 创建 tar.gz 存档
【发布时间】:2011-03-20 20:09:28
【问题描述】:

我有一个 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>

程序集.xml:

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

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

【问题讨论】:

    标签: maven-2 archive maven-assembly-plugin


    【解决方案1】:

    您需要将程序集描述符配置为包含基本目录并为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>
    

    使用上述程序集描述符,我得到以下结果(在复制结构的项目上运行时):

    $ mvn clean 组装:组装 ... $ cd 目标 $ tar zxvf Q3330855-1.0-SNAPSHOT-bundle.tar.gz 输出/ 输出/hello.txt

    另见

    【讨论】:

    【解决方案2】:

    尝试在fileSet 中设置outputDirectory。那应该删除 src/main/output 目录。

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

    您可能还需要将 includeBaseDirectory 设置为 false。这将删除名称目录。

    <assembly>
      <id>bundle</id> 
      <includeBaseDirectory>false</includeBaseDirectory>
      <!-- ... -->
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-13
      • 2014-06-16
      • 2016-02-02
      • 1970-01-01
      相关资源
      最近更新 更多