私はEclipse 3.3.2でmaven 2.0.9を使用しています。
私は、新しいビルドを 1 日 1 回、mvn clean install
. 次に、Eclipse プロジェクトを更新すると、Maven のターゲットディレクトリのファイルによって「汚染」されます。
検索を実行したり、「リソースを開く」などでリソースを取得したりするときに、これは非常に面倒です。
Eclipse がこのフォルダーを参照しないようにする方法はありますか?
無視するフォルダを右クリックし、[プロパティ]ダイアログを開き、[リソース]タブを選択して、[派生]チェックボックスをオンにします。
ターゲットディレクトリを削除しないように、Mavenで「clean」を再構成します。
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<excludeDefaultDirectories>true</excludeDefaultDirectories>
<filesets>
<!-- delete directories that will be generated when you
start the develpment server/client in eclipse
-->
<fileset>
<directory>target</directory>
<includes>
<include>**/*</include>
</includes>
</fileset>
</filesets>
</configuration>
</plugin>
(http://maven.40175.n5.nabble.com/how-to-NOT-delete-target-dir-td3389739.html#a3413930にあります)
インディゴの解決策 [SR2]
Project Explorer
> Customize View
> Filters
>[*] Maven Build Folder
私はこの問題にとても腹を立てているので、それを解決するためのプラグインを書きました。ソースとjarは次の場所から取得します。
ここでこの問題を解決するために、私がしたことは次のとおりです。
-----------スクリプト用に以下をカット--------------
/*
* Menu: Find System Prints > Beanshell
* Script-Path: /GroovyMonkeyScripts/monkey/UpdateMavenDerived_Beanshell.gm
* Kudos: Bjorn Freeman-Benson & Ward Cunningham & James E. Ervin
* License: EPL 1.0
* LANG: Beanshell
* DOM: http://groovy-monkey.sourceforge.net/update/plugins/net.sf.groovyMonkey.dom
*/
out.println("Setting target directories to derived status.");
var projects = workspace.getRoot().getProjects();
for ( var i = 0; i < projects.length; i++) {
var project = projects[i];
if (project.isOpen()) {
out.println("Project: " + project.getName());
var members = project.members();
for ( var j = 0; j < members.length; j++) {
if (members[j].getName().equals("target")) {
out.println("setting derived status on: "+ members[j].getFullPath());
members[j].setDerived(true);
}
}
}
}
設定>チーム>無視されたリソース
「ターゲット」を追加し、Eclipseを再起動します。
(プロジェクト エクスプローラーの右上の矢印を使用して) [Java Element Filters] オプション ダイアログ ボックスを構成しようとしましたか?
必要に応じて、独自のViewerFilterを定義できます
Maven プラグインは、ターゲット ディレクトリを隠しません。ただし、Maven ターゲット フォルダーを使用して Eclipse を構成します。したがって、ターゲット/クラスとターゲット/テスト クラスは Eclipse によって使用され、Eclipse はこれらのフォルダーを除外します。これは、「mvn eclipse:eclipse」と m2eclipse プラグインによって行われます。これらの 2 つのフォルダー (たとえば、生成された jar ファイル) 以外のターゲット ディレクトリ内のすべてが表示されたままになります。
パッケージエクスプローラー用のフィルターを作成できますが、それは「開いているリソース」には影響しません。
ここでのいくつかのソリューションは一部のビューでしか機能しないため、いくつかの問題があったため、図解による要約を作成しました。
Eclipse 4.4 (Luna) でテストされ、3.7 以降の他の回答によると、このように動作するはずです。
Package Explorer View Menu → Filters...
→ チェックName filter patterns
して入力しますtarget
。
target
これにより、デフォルトのmavenビルドディレクトリだけでなく、という名前のすべてのフォルダーとファイルが非表示になることに注意してください! Project Explorerビューには、この問題のないより良いオプションがあります。
Project Explorer View Menu → Custom View...
→ 「maven」で検索して確認してくださいMaven build folder
。
このオプションをオンにすると、プロジェクトの pom.xml 構成で定義されているビルド ディレクトリが非表示になります。
Eclipse 用の Maven プラグインを使用していますか?
私はそれがあなたの「汚染」の一部を隠すと想像します.
また、Eclipse 内でビルドを実行することもできます。つまり、同時にプロジェクト ビューが更新されます。
「mvn clean install」を頻繁に使用する場合、リソース フィルターを使用すると問題が解決するように見えます。
基本的に、「ターゲット」とサブフォルダーを追加して、フォルダーを.projectファイルに直接除外します。このスクリプトを実行した後、プロジェクトを Eclipse にインポートすると、'Project'->'Properties'->'Resource'->'Resource Filters' の設定が表示されます。これ以前は、mvn clean install を実行するたびに eclipse が CPU の 50% を使用していましたが、プロジェクトのビルド中は 5% 未満のままです。
function eclipse-setup() {
mvn eclipse:clean
mvn eclipse:eclipse
#maven target folders
find . -name .project -exec sed -i.MSORG 's/<\/projectDescription>/<filteredResources> <filter> <id>1314376338264<\/id> <name><\/name> <type>26
<\/type> <matcher> <id>org.eclipse.ui.ide.multiFilter<\/id> <arguments>1.0-name-matches-false-false-target<\/arguments> <\/matcher> <\/filter> <filt
er> <id>1314387234341<\/id> <name><\/name> <type>6<\/type> <matcher> <id>org.eclipse.ui.ide.multiFilter<\/id> <arguments>1.0-name-matches-false-fals
e-*.cache.html<\/arguments> <\/matcher> <\/filter> <\/filteredResources><\/projectDescription>/' {} \;
}
Eclipseがフリーズすると、プロセスアクティビティを確認すると、すべてのターゲット、.hg、および.gitディレクトリを参照していることがわかります。さらに、これらのディレクトリもEclipseのbinディレクトリにコピーされます。多くのCPUとディスクの使用量は無料です。
ターゲットディレクトリをクリーンアップしないことは、許容できる解決策ではありません。
モンキースクリプト(http://maven.40175.n5.nabble.com/Eclipse-amp-target-directory-td72354.html)を使用した解決策がありましたが、プロジェクトは終了しました。
私はまだEclipseにMavenターゲットディレクトリと.hgおよび.gitディレクトリを無視するように指示する解決策を探しています。
Eclipseがそれらを継続的に監視するのは苦痛です。
私もm2eclipseを使用していますが、その問題は解決しません。