Мы специально используем для этой цели плагин build-helper . В нашей компании родительский pom - это цель удаления-проекта-артефакта, встроенная в профиль для наших сборок Hudson. Таким образом, все старые версии этого артефакта удаляются перед установкой текущей версии сборки.
...
<profile>
<id>hudson</id>
<activation>
<property>
<name>BUILD_TAG</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>remove-old-artifacts</id>
<phase>package</phase>
<goals>
<goal>remove-project-artifact</goal>
</goals>
<configuration>
<removeAll>true</removeAll>
</configuration>
</execution>
</executions>
</plugin>
...
Использование removeAll со значением true уничтожит все другие снимки, кроме того, над которым вы работаете. Это может быть опасно, так как это может означать, что снимки для ветки также будут уничтожены.
Например, если у вас есть снимок 1.0.0.18-SNAPSHOT, представляющий HEAD, и снимок 1.0.1.17-SNAPSHOT, представляющий ветвь, запуск этого плагина со сборкой 1.0.0.18-SNAPSHOT приведет к удалению папки 1.0.1.17-SNAPSHOt.
Чтобы обойти этот сценарий, для removeAll должно быть установлено значение false.