Как удалить сгенерированные артефакты сборки из целевого каталога Maven? - PullRequest
9 голосов
/ 12 октября 2009

Как удалить сгенерированные артефакты сборки из целевого каталога Maven? Maven создает файл jar или war для целевого каталога. Я хочу удалить этот файл после того, как maven установит файл jar / war в локальный репозиторий (то есть после того, как maven выполнит цель 'install'). Удаление может произойти либо при установке цели, либо при выполнении отдельной задачи, которую я выполняю вручную.

Обратите внимание, что я хотел бы оставить другие части целевого каталога нетронутыми, например target / site и target / surefire-reports.

Ответы [ 3 ]

18 голосов
/ 12 октября 2009

Просто используйте чистый плагин и запустите выполнение после фазы установки:

  <plugin>
    <artifactId>maven-clean-plugin</artifactId>
    <version>2.2</version>
    <executions>
      <execution>
        <id>auto-clean</id>
        <phase>install</phase>
        <goals>
          <goal>clean</goal>
        </goals>
        <configuration>
          <filesets>
            <fileset>
              <directory>${project.build.outputDirectory}</directory>
              <includes>
                <include>**/*.jar</include>
              </includes>
            </fileset>
           </filesets>
         </configuration>
      </execution>
    </executions>
  </plugin>
0 голосов
/ 11 января 2011

Я знаю, что немного опоздал. Но я думаю, проблема заключалась в том, что проект maven автоматически архивирует артефакты. В моем случае я отключил автоматическое архивирование и просто заархивировал артефакты вручную, используя действия после сборки. Таким образом, только артефакты, которые меня интересуют, архивируются. Я готов оставить сгенерированные артефакты на диске до следующей сборки.

0 голосов
/ 12 октября 2009

В Maven нет ничего, что могло бы сделать это. Вы можете использовать плагин antrun для выполнения сценария Ant после установки, который удаляет артефакт, или использовать плагин exec для использования командной строки для удаления артефакта, или написать свой собственный плагин -в.

Я полагаю, что делать что-либо из этого мало, если таковые имеются. Maven предназначен для размещения промежуточных и конечных артефактов в target, чтобы сделать последующие сборки более эффективными. Причиной того, что для этого уже ничего нет, является индикатор того, что это мало что значит. Если это имеет значение для вас, у вас есть несколько вариантов.

...