Maven... Не удалось очистить проект: не удалось удалить..\org.ow2.util.asm-asm-tree-3.1.jar
Я использую набор инструментов STS (spring) + 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 снова это работает, но это хлопот.
Можете ли вы помочь мне с этой проблемой?
UPDATE
для Калатоки L.
Я запускаю maven-clean
из этого состояния:
![STS screen shot]()
Я вижу такое же поведение из командной строки, как и из плагина eclipse
Если я смотрю разблокировку при запуске STS, я вижу
:
Ответы
Ответ 1
Остановите свой сервер, прежде чем начать очистку.
Остановка сервера
Вы можете остановить сервер из представления Servers.
Чтобы остановить сервер:
- В представлении "Серверы" (Окно > Показать представление > Другое > Сервеp > Серверы > OK), выберите сервер, который вы хотите остановить.
- Нажмите значок Остановить сервер
в панели инструментов. В представлении "Серверы" статус сервера
изменяется на "Остановлен".
-
Если по какой-либо причине сервер не может остановиться, вы можете завершить
выполните следующее:
а. Переключитесь на перспективу отладки.
б. В представлении "Процесс" выберите серверный процесс, который вы хотите остановить.
с. Нажмите Завершить
значок на панели инструментов.
Примечание.. При завершении работы сервера процесс сервера завершается, и сервер не будет проходить обычную процедуру остановки, например, вызов метода destroy() на сервлет.
Источник: Справка Eclipse
Ответ 2
Вы также можете попробовать попробовать -Dmaven.clean.failOnError=false
(из Часто задаваемые вопросы Maven)
Ответ 3
Удалите java.exe-процесс в Диспетчере задач и запустите mvn clean install.It работал у меня.
Ответ 4
Ваша проблема в том, что запущенный процесс в STS использует файлы, находящиеся в вашем целевом каталоге, при выполнении команды mvn clean
. Maven не сможет удалить эти файлы (поскольку другие процессы все еще обращаются к ним) и, таким образом, сбой с этой ошибкой.
Попробуйте остановить все процессы (тесты, серверы, приложения) изнутри STS перед запуском команд консоли Maven. Посмотрите: это поведение также может появиться, если STS очищает проекты и, следовательно, повторно компилирует источники и не запускает процесс.
Ответ 5
Возможно, существует много процессов, которые используют исходные компиляции, могут быть сервером, старой командой maven или IDE. Конечно, прекратите все процессы, остановите сервер, а затем снова выполните maven. Если проблема не устранена, вы должны закрыть процесс java.exe.
Привет!
Ответ 6
Попробуйте отключить Project- > Build Automatically.
Как сказал Скорпион, там работает процесс, который где-то блокировал файл.
У меня есть большой многомодульный проект maven, который регулярно терпит неудачу в чистом виде, и это разрешает это для меня.
Я снова включаю Build Automatically, когда закончите.
Ответ 7
Закройте целевую папку и ее файл, который вы открыли, прежде чем mvn clean
Ответ 8
Резюме: Используйте внешний script (пакетный файл), который: а) останавливает сервер и б) разблокирует файл .jar перед запуском maven-clean.
Шаги:
-
Привязать maven-antrun-plugin: запустить цель в предварительно очищенную фазу mvn clean. Посмотрите, как это сделать здесь
-
Посмотрите, как использовать плагин antrun для запуска внешнего командного файла в Windows здесь: sblundy ответ на "Запуск внешнего процесса" . Позвоните в этот файл unlock_handles.bat
-
Используйте утилиту Sysinternals handle ссылку для скачивания в файле pre_clean.bat, чтобы: a) остановить Tomcat и b) разблокировать файл .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 перед тем, как попробовать.
Ответ 9
У меня такая же проблема, и это
mvn clean install -U
исправлена ошибка.
Ответ 10
Если все шаги (в существующих ответах) не работают, просто закройте затмение и снова закройте eclipse.
Ответ 11
Для пользователей Linux: возможное решение.
Ошибка сборки из-за ошибки "Не удалось удалить < any-file-or-folder > " произойдет, если есть вероятность, что доступ к данным, доступный только для пользователя root, предоставляется только нормальным -user.
Исправить: введите команду ll для отображения файла, который не может быть удален, если для файла предоставлен root-доступ, измените его на обычного пользователя:
sudo chown -R имя_пользователя: имя_файла имени пользователя
Позже попробуйте maven clean и build.
Ответ 12
У меня была аналогичная проблема. Раньше я использовал Maven 3 для создания проекта. После переключения на maven 2 у меня была ошибка выше.
Решил его, переключившись на Maven 3.
Ответ 13
Я решил мой, выполнив:
- мвн чистый
- установить MVN
- mvn clean install
По некоторым причинам это сработало для меня. Удачи !!
Ответ 14
Если вы заблокируете org.ow2.util.asm-asm-tree-3.1.jar
и запустите eclipse, в журнале показывается, кто не смог заблокировать файл. Та же самая кодовая строка, которая не может заблокировать файл, не освободит блокировку.
Ответ 15
В фазе предварительной очистки я запускаю программу 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>
Ответ 16
Maven жалуется, если у вас нет прав администратора в целевой папке. Проверьте, есть ли у администратора право удалить эту папку.
![введите описание изображения здесь]()
Ответ 17
Удалите целевой файл и закройте редактор кода, затем снова откройте, он обязательно будет работать. Этот временно ищет постоянный.
Ответ 18
Пожалуйста, закройте все вкладки браузера. И в следующий раз, когда вы попытаетесь загрузить войну из другого места, кроме целевой папки.
Ответ 19
Если вы столкнетесь с этой ошибкой в IDE, такой как Eclipse или IntelliJ, у вас может быть одно или несколько окон отладки, открытых и приостановленных на точке останова. Прекратить их.
Ответ 20
У меня была эта проблема при попытке вызвать mvn clean install
после отправки коллеге по электронной почте с.jar из /target через Microsoft Outlook.
Мне пришлось закрыть Microsoft Outlook, чтобы вызвать mvn clean install
.