2016-12-09 2 views
1

У меня есть следующий assembly.xml. Я пытался выяснить, как при включении файлов я могу переименовать их в нечто другое. В настоящее время мой tar имеет файл войны как project-1.0.0.0.war, и я хочу, чтобы он был project.war. Как я могу это сделать?Как переименовать файл при сборке проекта загрузки весны?

<assembly> 
<id>${version}-tar</id> 
<formats> 
    <format>tar.gz</format> 
</formats> 
<includeBaseDirectory>true</includeBaseDirectory> 
<baseDirectory>project-${version}</baseDirectory> 

<fileSets> 
    <fileSet> 
     <directory>target</directory> 
     <outputDirectory>.</outputDirectory> 
     <includes> 
      <include>project-${version}.war</include> 
     </includes> 
    </fileSet> 
    <fileSet> 
     <directory>etc/bin</directory> 
     <outputDirectory>.</outputDirectory> 
     <includes> 
      <include>start</include> 
      <include>stop</include> 
     </includes> 
    </fileSet> 
</fileSets> 

ответ

1

Если вы хотите, чтобы контролировать имя получателя файла в сборке, вы не должны использовать <fileSet>, но a <file>. Причина в том, что первые группы объединяют несколько файлов и, как таковые, не обеспечивают способ управления именем каждого файла в группе. Поскольку а <file> мишени только один файл, вы можете контролировать имя получателя с <destName> элементом:

Задает имя файла назначения в OutputDirectory. Значение по умолчанию - это то же имя, что и файл источника.

Вы должны вместо этого:

<files> 
    <file> 
    <source>target/project-${version}.war</directory> 
    <destName>project.war</destName> 
    </file> 
</files> 
<!-- the other "fileSets" for etc/bin, unchanged --> 

вместо <fileSet>. Это гарантирует, что файл, указанный в элементе <source>, будет переименован в <destName> в результирующую сборку.

+0

спасибо! followup q, я думаю, если я хочу включить все файлы в каталог, что такое правильный синтаксис? – iCodeLikeImDrunk

+2

@iCodeBadly Просто не указывайте элемент '' в ''; по умолчанию он включает все под указанным каталогом. Если вы специально хотите файлы, но не папку, ' *' должен работать – Tunaki

+0

спасибо за подсказку! – iCodeLikeImDrunk

Смежные вопросы