it-roy-ru.com

maven ... Не удалось очистить проект: не удалось удалить ..\org.ow2.util.asm-asm-tree-3.1.jar

Я использую STS (Spring Tool Suite) + плагин Maven.

Каждый раз, когда я запускаю свое приложение, используя maven-clean, я вижу следующую ошибку:

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building hhsystem ui 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ ui ---
[INFO] Deleting C:\Users\Nikolay_Tkachev\workspace\HHSystem\UI\target
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.471s
[INFO] Finished at: Mon Oct 21 12:34:33 MSK 2013
[INFO] Final Memory: 2M/90M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.Apache.maven.plugins:maven-clean-plugin:2.4.1:clean (default-clean) on project ui: Failed to clean project: Failed to delete C:\Users\Nikolay_Tkachev\workspace\HHSystem\UI\target\org.ow2.util.asm-asm-tree-3.1.jar -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.Apache.org/confluence/display/MAVEN/MojoExecutionException

Я должен закрыть STS и перейти к C:\Users\Nikolay_Tkachev\workspace\HHSystem\UI\target и удалить org.ow2.util.asm-asm-tree-3.1.jar

После запуска STS снова это работает, но это хлопот.

Можете ли вы помочь мне с этой проблемой?

ОБНОВЛЕНИЕ
для Kalathoki L.

Я запускаю maven-clean из этого состояния:

STS screen shot

Я вижу то же поведение из командной строки, что и из плагина Eclipse

Если я смотрю анлокер, когда работает STS, я вижу

unlocker screen shot:

55
user2740224

Остановите свой сервер, прежде чем начать очистку.

Остановка сервера

Вы можете остановить сервер в представлении Серверы.

Чтобы остановить сервер:

  1. В представлении Серверы ( Окно> Показать представление> Прочее> Сервер> Серверы> ОК ) выберите сервер, который вы хотите остановить.
  2. Нажмите Остановить сервер  this значок на панели инструментов. В представлении Серверы состояние сервера Изменится на Остановлено.
  3. Если по какой-либо причине сервер не может остановиться, вы можете прервать процесс Следующим образом:

    а. Переключитесь на перспективу Debug.

    б. В представлении «Процесс» выберите процесс сервера, который вы хотите остановить.

    с. Нажмите Завершить  This is an image of the Terminate значок на панели инструментов.

Примечание: При завершении работы сервера серверный процесс завершается, и сервер не проходит обычную процедуру остановки, например, вызывает метод destroy () в сервлете.

Источник: Eclipse Help

43
Yubaraj

Вы также можете попробовать попробовать -Dmaven.clean.failOnError=false (От Maven FAQ )

30
Bartosz Bilicki

Ваша проблема в том, что запущенный процесс в STS использует файлы, расположенные в вашей целевой директории, пока вы выполняете команду mvn clean. Maven не сможет удалить эти файлы (так как другие процессы все еще обращаются к ним) и, следовательно, завершится с ошибкой.

Попробуйте остановить все процессы (тесты, серверы, приложения) из STS перед запуском консольных команд Maven. Обратите внимание: это поведение может также появиться, если STS очищает проекты и, таким образом, перекомпилирует исходные коды, а не запускает процесс.

12
Scorpio

Вероятно, есть много процессов, которые используют скомпилированные исходники, это может быть сервер, старая инструкция maven или IDE. Конечно, завершите все процессы, остановите сервер и снова запустите maven. Если проблема не устранена, следует закрыть процесс Java.exe.

С уважением!

7
Jhonatan Alarcon

Удалите процесс Java.exe в диспетчере задач и запустите mvn clean install. У меня это сработало.

6
Bibek Shrestha

Summary: Используйте внешний скрипт (пакетный файл), который а) останавливает сервер и б) разблокирует файл .jar перед запуском maven-clean.

Шаги:

  1. Привязать maven-antrun-plugin: запустить цель на этапе предварительной очистки mvn clean. Посмотрите, как это сделать здесь

  2. Посмотрите, как использовать плагин antrun для запуска внешнего пакетного файла в Windows здесь: ответ sblundy на «Запуск внешнего процесса» . Давайте назовем этот файл unlock_handles.bat

  3. Используйте утилиту Sysinternals handleссылка для загрузки в pre_clean.bat, чтобы а) остановить сервер Tomcat и б) разблокировать файл .jar. handle -c и handle -p были бы полезны здесь.

Уф! Это небольшая работа, но она надежно автоматизирует процесс, так что вам придется каждый раз делать это вручную самостоятельно!


Хорошо, вот примерная версия unlock_handles.bat с проверкой концепции, которую вы можете попробовать:

REM "Use handle.exe to figure out the process id and handle ids, parse the output, then close the handle (again using handle.exe)"

cd "C:\Users\Nikolay_Tkachev\workspace\HHSystem\UI\target"
"c:/Program Files/Process Explorer/handle.exe" -p Java.exe "C:\Users\Nikolay_Tkachev\workspace\HHSystem\UI\target" > handles.txt

@echo "O====== Going to unlock all the below file handles! =======O"
FOR /F "tokens=1-26 delims=: " %a in (handles.txt) DO @echo %h
FOR /F "tokens=1-26 delims=: " %a in (handles.txt) DO handle -p %c -c %f -y

Конечно, вы должны изменить путь к handle.exe Sysinternals перед тем, как попробовать.

5
vijucat

У меня такая же проблема и эта 

mvn clean install -U

команда исправила ошибку.

3
Amir

Закройте целевую папку и файл, который вы открыли перед очисткой mvn

2
Neha

Попробуйте отключить Проект-> Автоматически построить.

Как предположил Скорпион, запущен процесс, который где-то заблокировал файл.

У меня есть большой многомодульный проект Maven, который регулярно завершается неудачей на чистом, и это решает его для меня. Я снова включаю Автоматическую сборку, когда я закончу.

2
Davetron

Я решил мой, выполнив: 

  • мвн чистый
  • установить MVN 
  • mvn clean install

По некоторым причинам это сработало для меня. Удачи !!

1
Boris_Ndong

У меня была похожая проблема. Ранее я использовал Maven 3 для создания проекта. После переключения на maven 2 у меня была вышеуказанная ошибка. 

Решил это, переключившись на Maven 3.

1
Madhu V Rao

Для пользователей Linux: возможное решение.

Ошибка сборки из-за "Не удалось удалить <any-file-or-folder>" произойдет, если есть шанс удалить только доступ, предоставленный root пользователю, а не normal- пользователь.

Исправление: введите команду ll для вывода списка файлов, которые нельзя удалить. Если файл имеет права root, измените его на обычного пользователя с помощью: 

Sudo chown -R user-name: имя-пользователя имя-файла

Позже попробую для maven почистить и собрать.

1
ram

Если все шаги (в существующих ответах) не работают, просто закройте Eclipse и снова откройте Eclipse.

1
Vijay Gupta

На этапе предварительной очистки я выполняю программу Maven Unlocker. Эта программа разблокирует все файлы и каталог для любой программы.

Я выполняю это с помощью maven-antrun-plugin и только в системах Windows 

<profile>
  <activation>
    <os>
      <family>windows</family>
    </os>
  </activation>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.8</version>
        <executions>
          <execution>
            <phase>pre-clean</phase>
            <configuration>
              <tasks>
                <exec dir="${project.build.directory}" executable="cmd" failonerror="false">
                  <arg value="Unlocker.exe" />
                  <arg value="/S" />
                </exec>
              </tasks>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</profile>
0
Raul Villalba

Если вы заблокируете org.ow2.util.asm-asm-tree-3.1.jar и запустите Eclipse, в журнале будет показано, кто не смог заблокировать файл. Та же самая кодовая строка, которая не может заблокировать файл, не снимет блокировку.

0
Peter Rader

Maven жалуется, если у вас нет прав администратора для целевой папки. Проверьте, есть ли у вас права администратора, чтобы удалить эту папку.

 enter image description here

0
reshma

Пожалуйста, закройте все вкладки браузера. И в следующий раз, когда вы попытаетесь загрузить войну из другого места, кроме целевой папки.

0
Atul Jain