我在Eclipse 3.3.2中使用maven 2.0.9。
我习惯于每天用mvn clean install
启动一次新构建。
然后,如果我刷新我的Eclipse项目,它将被来自Maven的目标目录的文件“污染”。
在执行搜索,通过“开放资源”等获取资源时,这非常烦人。
有没有办法避免Eclipse查看此文件夹?
答案 0 :(得分:57)
右键单击要忽略的文件夹,打开“属性”对话框,选择“资源”选项卡,然后选中“派生”框
答案 1 :(得分:25)
在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)
答案 2 :(得分:14)
Indigo解决方案[SR2]
Project Explorer
&gt; Customize View
&gt; Filters
&gt; [*] Maven Build Folder
答案 3 :(得分:10)
我一直对这个问题很生气,我写了一个插件来解决它。你可以从以下地址获得源和罐子:
答案 4 :(得分:4)
为了解决这个问题,我这样做了:
-----------在这里剪下脚本--------------
/*
* 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);
}
}
}
}
答案 5 :(得分:3)
您是否尝试配置“Java元素过滤器”选项对话框(通过项目浏览器的右上角)?
如果需要,您可以定义自己的ViewerFilter
答案 6 :(得分:3)
偏好设置&gt;团队&gt;忽略资源
添加“target”,然后重新启动Eclipse。
答案 7 :(得分:2)
maven插件不会隐藏目标目录。但它确实使用maven目标文件夹来配置eclipse。所以eclipse使用目标/类和目标/测试类,eclipse会过滤掉这些文件夹。这是通过“mvn eclipse:eclipse”以及m2eclipse插件完成的。除了这两个文件夹(例如生成的jar文件)之外,目标目录中的所有内容都是可见的。
您可以为包资源管理器创建过滤器,但这不会影响“开放资源”。
答案 8 :(得分:2)
我遇到了一些问题,因为这里的某些解决方案仅适用于某些观点,所以我做了一个插图摘要。
在Eclipse 4.4(Luna)中测试过,应该像3.7中的其他答案一样工作。
Package Explorer查看菜单→Filters...
→选中Name filter patterns
并输入target
。
要小心,这将隐藏名为target
的所有文件夹和文件,而不仅仅是默认的maven构建目录! Project Explorer 视图有一个更好的选择,没有这个问题。
Project Explorer查看菜单→Custom View...
→搜索“maven”并检查Maven build folder
。
选中此选项会隐藏项目pom.xml配置中定义的构建目录。
答案 9 :(得分:1)
答案 10 :(得分:1)
如果经常使用“mvn clean install”,使用资源过滤器可以解决问题。
基本上它会将'target'添加到子文件夹以将文件夹直接排除到.project文件。运行此脚本后,如果将项目导入eclipse,则可以看到设置'Project' - &gt;'Properties' - &gt;'Resource' - &gt;'Resource Filters'。在此之前,每当我运行mvn clean install时,eclipse占用了我50%的CPU,但现在它在构建项目时保持在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>/' {} \;
}
答案 11 :(得分:0)
当Eclipse冻结,查看进程活动时,我可以看到它浏览所有目标,.hg和.git目录。而且,这些目录也被复制到Eclipse的bin目录中。没有任何CPU和磁盘使用。
不清理目标目录是不可接受的解决方案。
使用Monkey脚本(http://maven.40175.n5.nabble.com/Eclipse-amp-target-directory-td72354.html)有一个解决方案,但项目已经关闭。
我仍然在寻找一种解决方案来告诉Eclipse忽略Maven目标目录,以及.hg和.git目录。
Eclipse不断观察那些是一种痛苦。
我也使用m2eclipse,但它没有解决这个问题。