![](/img/trans.png)
[英]Eclipse + Maven and hidden ${basedir}/target/classes folder?
[英]Is there a way to hide Maven 2 “target/” folder in Eclipse 3?
我在Eclipse 3.3.2中使用maven 2.0.9。
我习惯于每天通过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);
}
}
}
}
您是否尝试配置“Java元素过滤器”选项对话框(通过项目浏览器的右上角)?
如果需要,您可以定义自己的ViewerFilter
首选项>团队>忽略的资源
添加“target”,然后重新启动Eclipse。
maven插件不会隐藏目标目录。 但它确实使用maven目标文件夹来配置eclipse。 所以eclipse使用目标/类和目标/测试类,eclipse会过滤掉这些文件夹。 这是通过“mvn eclipse:eclipse”以及m2eclipse插件完成的。 除了这两个文件夹(例如生成的jar文件)之外,目标目录中的所有内容都是可见的。
您可以为包资源管理器创建过滤器,但这不会影响“开放资源”。
我有一些问题,因为这里的一些解决方案仅适用于某些视图,所以我做了一个插图摘要。
在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配置中定义的构建目录。
如果经常使用“mvn clean install”,使用资源过滤器可以解决问题。
基本上它会将'target'添加到子文件夹以将文件夹直接排除到.project文件。 运行此脚本后,如果将项目导入到eclipse,则可以看到设置“项目” - >“属性” - >“资源” - >“资源过滤器”。 在此之前,每当我运行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>/' {} \;
}
当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,但它没有解决这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.