私はSTS(スプリングツールスイート)+ 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
Kalathoki L.
この状態からmaven-clean
を実行します。
コマンドラインからもEclipseプラグインと同じ動作が見られます
STSの実行中にロック解除プログラムを見ると、
:
クリーニングを開始する前にサーバーを停止します。
サーバーの停止
サーバービューからサーバーを停止できます。
サーバーを停止するには:
何らかの理由でサーバーの停止に失敗した場合は、次のようにしてプロセスを終了できます。
a。デバッグパースペクティブに切り替えます。
b。プロセスビューで、停止するサーバープロセスを選択します。
c。 終了をクリックします ツールバーのアイコン。
注:サーバーを終了すると、サーバープロセスは終了し、サーバーは通常の停止ルーチン(たとえば、サーブレットでdestroy()メソッドを呼び出す)を行いません。
ソース: Eclipseヘルプ
-Dmaven.clean.failOnError=false
を試すこともできます( Maven FAQ から)
タスクマネージャーでJava.exeプロセスを削除し、mvn clean installを実行します。
問題は、mvn clean
コマンドの実行中に、STS内で実行中のプロセスがターゲットディレクトリにあるファイルを使用していることです。 Mavenはこれらのファイルを削除できず(他のプロセスがまだファイルにアクセスしているため)、エラーで失敗します。
Mavenコンソールコマンドを実行する前に、STS内からすべてのプロセス(テスト、サーバー、アプリケーション)を停止してください。気を付けてください:この動作は、STSがプロジェクトをクリーンアップしてソースを再コンパイルし、プロセスを実行していない場合にも表示される場合があります。
おそらく、コンパイルされたソースを使用する多くのプロセスがあり、サーバー、古いMaven命令、またはIDEである可能性があります。必ずすべてのプロセスを終了し、サーバーを停止してから、mavenを再度実行してください。問題が解決しない場合は、Java.exeプロセスを閉じてください。
よろしく!
Mvn cleanの前に開いたターゲットフォルダーとそのファイルを閉じます。
Project-> Build Automaticallyを無効にしてみてください。
Scorpioが示唆したように、どこかでファイルをロックしているプロセスが実行されています。
私は定期的にクリーンで失敗する大規模なマルチモジュールMavenプロジェクトを持っていますが、これは私のためにそれを解決します。完了したら、自動的にビルドを再度有効にします。
概要:a)サーバーを停止し、b)maven-cleanを実行する前に.jarファイルのロックを解除する外部スクリプト(バッチファイル)を使用します。
手順:
Maven-antrun-plugin:runゴールをmvn cleanのpre-cleanフェーズにバインドします。これを行う方法を参照してください こちら
Antrunプラグインを使用してWindowsで外部バッチファイルを実行する方法については、こちらをご覧ください。 「外部プロセスの開始」に対するsblundyの回答 。このファイルを呼び出しましょうunlock_handles.bat
Pre = clean.batでSysinternals handleユーティリティ ダウンロードリンク を使用して、a)Tomcatサーバーを停止し、b)をアンロックします。 jarファイル。 handle -c
およびhandle -p
はここで役立ちます。
ふう!少し手間がかかりますが、プロセスを確実に自動化するため、毎回手動で行う必要があります!
OK、試してみるための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
もちろん、試してみる前にSysinternalsのhandle.exeへのパスを変更する必要があります。
私は同じ問題とこれを持っています
mvn clean install -U
コマンドはエラーを修正しました。
すべての手順(既存の回答)が機能しない場合は、Eclipseを閉じて、再びEclipseを開きます。
私は私のことを解決しました:
何らかの理由でそれは私のために働いた。幸運を !!
同様の問題がありました。以前、私はMaven 3を使用してプロジェクトをビルドしていました。 Maven 2に切り替えた後、上記のエラーが発生しました。
Maven 3に切り替えて解決しました。
Linuxユーザーの場合:可能な解決策。
"<any-file-or-folder>の削除に失敗しました" "によるビルドエラーが発生するのは、削除アクセスのみが提供された場合です- root user normal-userではなく。
修正:llコマンドを入力して、削除できないファイルを一覧表示します。ファイルにルートアクセス権が付与されている場合は、次の方法で通常のユーザーに変更します。
Sudo chown -Rユーザー名:ユーザー名filename
後でMavenのクリーンとビルドを試してください。
事前クリーンフェーズでは、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>
org.ow2.util.asm-asm-tree-3.1.jar
をロックしてEclipseを起動すると、ログには誰がファイルをロックできなかったかが示されます。ファイルをロックできない同じコードラインは、ロックを解除しません。
すべてのブラウザタブを閉じてください。そして、次回ターゲットフォルダー以外の場所から戦争をアップロードしようとするとき。