Создание tar.gz архивирует со Знатоком

У меня есть проект Знатока, где в соответствии с src/main каталогом существует названный вывод sub dir. эта папка должна быть упакована в 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>

assembly.xml:

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

Моя проблема состоит в том, что я пробую результат, будет как выполнять саму утилиту tar, означая при извлечении для получения произведенного каталога и всего его содержания. то, что я получаю, является выходной папкой, перенесенной со всем путем проекта - name/src/main/output.

12
задан Pascal Thivent 25 July 2010 в 23:03
поделиться

2 ответа

Вам нужно настроить дескриптор сборки так, чтобы не включать базовый каталог и настроить выходной каталог для 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 assembly:assembly
...
$ cd target
$ tar zxvf Q3330855-1.0-SNAPSHOT-bundle.tar.gz 
output/
output/hello.txt

См. также

  • Формат дескриптора сборки ссылка
15
ответ дан 2 December 2019 в 20:15
поделиться

Попробуйте установить outputDirectory в fileSet. Это должно удалить каталоги src/main/output.

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

Возможно, вам также потребуется установить includeBaseDirectory в false. Это позволит удалить каталог имен.

<assembly>
  <id>bundle</id> 
  <includeBaseDirectory>false</includeBaseDirectory>
  <!-- ... -->
1
ответ дан 2 December 2019 в 20:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: