Требование распаковки, удаление файла и сжать снова можно встретить в один один шаге по truezip-maven-plugin
и его remove
цели которых:
Удалить набор файлов из существующего архива.
Примеры также охватывают этот сценарий.
Учитывая следующий фрагмент:
<properties>
<archive>${project.basedir}/sample.zip</archive>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>truezip-maven-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<id>remove-a-file</id>
<goals>
<goal>remove</goal>
</goals>
<phase>package</phase>
<configuration>
<fileset>
<!-- note how the archive is treated as a normal file directory -->
<directory>${archive}</directory>
<includes>
<include>hello.txt</include>
</includes>
</fileset>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
И исполнение:
mvn clean package
Строить будет обрабатывать ${archive}
файл (в данном случае sample.zip
на том же уровне файла pom.xml
, т.е. , в каталоге project.basedir
) и удалите из него файл hello.txt
. Тогда все все.
Я только что протестировал его, вы даже можете пропустить раздел properties
, если это не требуется. Тем не менее, вы должны также тщательно знать, что:
- Файл почтового индекса не должно быть под контролем версий, в противном случае он будет создавать конфликты в каждой сборки
- поведение, скорее всего, не должны быть частью Maven по умолчанию строить, поэтому хороший кандидат на Maven profile
- плагин заменяет исходный файл, поэтому, если это была проблема, вы можете сначала скопировать его в другое место, а затем обработать его, как указано выше. Чтобы скопировать его, вы можете использовать
maven-resources-plugin
и его цель copy-resources
.
Можете ли вы объяснить, почему вы должны это сделать? Создается ли этот ZIP-файл? Если да, то кто и когда? Какой файл вы хотите удалить в нем и почему? – Tunaki
Возможный дубликат [Распаковать внутренние молнии в zip с помощью Maven] (http://stackoverflow.com/questions/3264064/unpack-inner-zips-in-zip-with-maven) – DimaSan
mvn зависимость: распаковать + maven-assembly- плагин для rezip – johnnynemonic