开发者

How to exclude a folder that is producing warnings/errors in an Eclipse project?

开发者 https://www.devze.com 2023-01-16 19:29 出处:网络
Okay. I\'m sick of this problem.This has to have an easy fix, I\'m sure of it!! I hope SO can help me to get rid of this once and for all!

Okay. I'm sick of this problem. This has to have an easy fix, I'm sure of it!! I hope SO can help me to get rid of this once and for all!

Question

How do we get Eclipse to stop trying to process/compile all files under a particular project directory? The goal is for no errors/warnings to exist in the problems view if they relate to something in this folder or it's subfolders.

Background

We run Eclipse 3.6 and the m2eclipse plugin v0.10.2.20100623 manages our autobuild. For reasons beyond my control, we have the entire BlazeDS distribution in our SVN project directory under src/main/resources/blazeds. Essentially, this directory contains a vanilla distribution of tomcat running blazeds to which all our configuration and project files are added when we deploy to our server via SCP.

So, when we run deploy, this version of tomcat is copied to the server and our project is placed inside. Tomcat and our RIA application work and everything is fine.

The problem is, Eclipse tries to compile everything under src/main/resources/blazeds when running AutoBuild and this generates about 300 errors/warnings in our problem view. So when a real error surfaces, it gets lost among the noise.

The errors stem from code in /blazeds/tomcat/webapps/samples/testdrive-datapush and also the testdrive-httpservice, traderdesktop example webapps. They have dependent source code that's not on the classpath and jars that aren't included in the libraries.

Failed Attempted Solutions

I'm trying to push the proper solution: to re开发者_StackOverflow社区move the samples completely and also to get blazeds out of our version control. That's not happening anytime soon.

I've followed the SO answer here but it's only a very temporary solution. I've tried adding exclusions everywhere I can think of and other members of my team have done the same. I've removed src/main/resources as a source directory (in preferences > Java Build Path > Source Tab) I've added exclusions for blazeds under the resource directory. I've tried every permutation of blazeds and ** as in *blazeds*, **/blazeds/**, etc.

I've even tried including the libraries and source files the compiler is complaining about but I couldn't get it right without excessively mangling our project configuration.

Summary

This has to be simple. What is the conventional way to exclude a folder that is producing warnings/errors in an eclipse project?


Update #1:

gedim's solution below is decent but it

1) doesn't clear red X's from the project

2) is a change everyone on our team needs to do, manually

(i.e., it's not in a project property file; thereby, it isn't checked into subversion)

I hope there's a way to address the core problem by telling Eclipse that this directory doesn't contain

items to compile/validate. Such a change would likely show up in one of the project setting files.


Update #2:

The picture below shows the red X's I'm trying to clear and that

Build Path > Exclude

isn't an option...

How to exclude a folder that is producing warnings/errors in an Eclipse project?


I encountered a similar problem and resolved it by moving the folder into my project folder. I then went to:

  1. Project > Properties > Resource > Resource Filters > Add...
  2. Set Filter type = Exclude all.
  3. Set Applies to = Folders.
  4. Set File and Folder Attributes = { Name, matches, < your_folder_name > }


You can use the Configure Contents... on the menu of Problems panel. There you can create a new configuration and set the scope to On Working Set:. Click on Select... and create a new working set that excludes the folders you don't want.


There is an Eclipse feature request for ignoring warnings from specified source folders. There have been several patches posted to the comment thread that provide implementations of the feature. It appears that a final patch is nearing the review stage for inclusion in an upcoming release.

Update 6/19/2012: Eclipse Juno 4.2M6 supports ignoring problems for a particular source folder. The feature is available on the Java Build Path dialog. See the release note.


If you really want to exclude certain classes/packages from autobuild you can just right click on them and select Build Path -> Exclude

How to exclude a folder that is producing warnings/errors in an Eclipse project?


Configure your project (Project/Properties/Java Build Path/Source) to have, instead of the top level src folder with exclusions, just a list of the folders you do want to compile.

Assuming Eclipse Helios, step by step:

  • Turn off autobuild (Project/Build Automatically).
  • Start with it empty.
  • Delete the errors by right clicking as in the link (just to be sure).
  • Add genuine source folders 1 by 1 (Project/Properties/Java Build Path/Source/Add Folder)
  • Do an explicit build (Project/Build Project).

If that works, you should be able to turn autobuild back on. If it doesn't, something strange is going on. Perhaps the project is not using the standard Java Builder, but something like an Ant Builder (Project/Properties/Builders).


Go to Java Build Path -> Source -> Add Folder

Choose the right folders which needs to be part of Build Path

In the above Screen shot src/main/resources needs to be removed from the build as it results in compilation error [wrong package ID]. Hence Include the Folder till src/main/resources .

I did try Build Path -> Exclude. This does not actually solve the problem. i.e though the RedX mark is cleared from the Eclipse, it will no more be right Java projects. I.e user may not be able to run JUnit Test cases/ debug etc.

But by including right folders, we can continue with as Java Project.


Since the files in the resource folder rarely change, I suggest to put them into a second project (where you can set different warning options) and then access that via a relative path (like ${basedir}/../special-tomcat).


The best approach is to use the Inclusion and Exclusion Patterns option in the Java Build Path.
For example if you want to exclude one project of being automatically build:
1- Go to its Properties->Java Build Path->Source.
2- Expand the folder in the "Source folders on the build path:" area
3- Select Exclude->Edit
4- In the exclusion patterns add **
Note: for more information on this patterns: Include and Exclusion Patterns

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号