Eclipse PDT Builder - What is it? How can I disable it? - eclipse

I have a custom build-script for my site. I want to invoke this script whenever I press ctrl+b in eclipse.
I have configured a new builder seen at the top. While my own builder runs fine, eclipse also invokes "Validation" and "Script Builder". As far as I can tell these two do absolutely nothing, but take ages to complete.
I have tried to simply disable them, but eclipse just creates them again as another instance. (hence the duplicates)
I have tried to add an exclusion to * for the PHP Build Path, but that didn't do anything.
What do "Validation" and "Script Builder" do exactly? Why do they take so long and above all: how can I disable them?

The fact that these two builders are re-added after you disable them is a bug. Please file bug reports at bugs.eclipse.org. You will need to file separate bug reports as these two builders are maintained by different groups of people.
The Validation builder performs a variety of validation on artifacts in your project. You can see all validation that's performed under Validation property page in the same dialog. In that page, you can selectively disable the categories of validation that you don't want.
The Script Builder comes from PDT and presumably performs validation on the actual PHP artifacts. Outside of what you've already tried, I don't know of a way to disable it.

2 years later and I have the exact same problem with latest PDT.
This is what I did:
Validations:
Right-click project
Properties
Validation
Click checkbox "Enable project specific settings"
Click checkbox "Suspend all validators"
Script Builder:
Right-click project
Properties-
PHP Build Path
remove all folders from "Source folders on build path:"
or remove all but the ones you really want to be checked for syntax errors
Now "build" phase of PHP project is way shorter (like a half a second :)))
However, if you want to be able to navigate PHP source using Eclipse (like right-click on function and select "Open declaration" or pressing F3 on function name) then you need to leave folders in Script Builder with source you want to navigate. I had project with huge folders containing source of various frameworks and I removed those from "Source folders on build path:" and only left folder(s) with project source. That cut down build time to second or so.

Related

Eclipse auto refresh (after custom builder) does not discover new files

This is not another of many "how do I have Eclipse auto refresh" questions. My problem is that it does but not entirely.
In a workspace with multiple projects the compilation of one causes source code to be generated in other(s) (that exist purely for this purpose - no manually written source code there). Source code is generated during the main compilation itself (i.e. not a custom builder, but a plugin for the Scala compiler, but that should be irrelevant).
What I've done so far is:
Add a dummy custom (ant) builder AFTER the standard one and set it to "refresh selected resources" - the source folder of those generated projects.
Also add a dummy custom (ant) builder BEFORE the standard (Java) builder of generated projects that refresh the same thing. Actually I tried various versions - just the source folder, the entire project, or the entire workspace with the same outcome. Note that those generated projects are set to depend on the project whose compilation generates their source code.
In Window -> Preferences -> General -> Workspace enabled "Refresh using native hooks or polling" in addition to "Refresh on access". I also tried disabling "Refresh on access" (leaving only the other one). Same outcome.
Tried with Eclipse Indigo (3.7 SR2 20120216-1857) and Juno (4.2.2 M20130204-1200), both 64-bit Windows versions. Additional plugins are installed, most notably Scala IDE (multiple different versions both for Scala 2.9 and 2.10 ending with Scala IDE 3.0.0). Same outcome.
... and that outcome is that Eclipse does indeed notice the files that have been modified. In whatever was the best combination of settings of the above (forgot) I was even able to get it to notice that some files that used to be generated no longer are and have them disappear (although I still had to collapse the tree and re-expand it, but no F5 was needed).
However, I never got to have it automatically discover that a brand new file that did not exist before was created. In my case that also yields compilation errors (since the modified files that it does discover have changed refer to the code in new files it does not notice).
Simple F5 solves the problem, but it is killing me, as I am trying to roll this environment to other developers and I'd hate having to tell them "You know, you have to (keep) push(ing) F5 every time you...".
Is it possible that this is still impossible in Eclipse? Does anyone know of a plugin (if not a direct solution) that can help?
As I noted in comments, discovering new folders (Java packages) also does not seem to be a problem. Just new files in existing folders.
Thanks!
UPDATE
With all the refresh things I did in place I noticed something I did not before.
I make the change in the project that causes code generation (was trying to test if it is the re-appearance of previously disappearing file is an issue or otherwise). This time I was just renaming one method which caused a name of the generated source file (Java class) to be changed as well.
As "Build automatically" is enabled, Eclipse begins the build. Very quickly it discovers an error and complains about it - one generated class that was modified now refers to a class Eclipse does not see yet (because refresh is incomplete - saw the modified file, but still believed that the file that no longer exists is there and did not see the new file).
Build actually continues. Progress goes up and down, appears and disappears a number of times, building other dependent projects. All the time the error is listed and marked in the Package Explorer on the modified class.
After the build seemingly completes (with that error in it, some minutes later), the refresh completes (!!!). Package Explorer is updated, the old file disappears, the new file appears, the error disappears, etc. I initially attributed this to me switching windows and triggering the refresh that way but I made sure I touched nothing the last time - just made the change and pushed Ctrl+S to save it.
This may mean that the 'condition' is not so bad (one just has to be very patient and have nerves of steel). Investigating further. Thanks to all who are or may be doing the same! The question is still why are there two refreshes with the first one being incomplete?

.ant-targets-build.xml puts eclipse project into error

I am using the most excellent ant/bin/complete-ant-cmd.pl for bash completion of ant targets and it caches its results in a file called .ant-targets-build.xml. The problem is, in my eclipse project, eclipse is a little overaggressive validating everything it believes is actually XML (which .ant-targets-build.xml isn't...its just the raw targets separated by newlines).
How do I get eclipse to relax its restrictions and treat .ant-targets-build.xml as NOT an xml file...just text or something.
Project->Properties
Check Enable project specific settings.
Click ellipsis next to XML Validator
Click on Exclude Group
Click on Add Rule
Follow wizard and create File exclusion.
One of the most annoying "features" of this dialog is that you cannot edit existing rules. If you make a mistake you will need to delete that rule and recreate it from scratch.
BTW, in your case it may be preferable to create a global workspace rule ( I usually like to keep special cases with the project ).
In any case after you finished with rule creation, right-click on a project with warnings and choose Validate. This will clear these warnings
If you decided to edit validation preferences in project and not in workspace, then add project-name/.setting/org.eclipse.wst.validation.prefs file to source control.

Adding existing project folders to the project explorer in eclipse

Probably a very straight forward solution here, but can't seem to find an answer. I recently changed my eclipse workspace to my dropbox folder, so I can work on my netbook when in college and on my desktop when at home. I copied and pasted all my project folders from the old workspace into the dropbox workspace, changed the workspace location in eclipse, but none of the projects are showing up in the project explorer now. Having refreshed the project explorer many times now to no avail, is there any way to add these projects into the project explorer? Thanks
From the main menu bar, select File > Import. The Import wizard opens.
Collapse or click + in General > Existing Project into Workspace and click Next.
Choose either Select root directory or Select archive file and click the associated Browse to locate the directory or file containing the projects.
Under Projects select the project or projects which you would like to import.
Click Finish to start the import.
I have had this problem in many versions of Eclipse and followed the process outlined by #vijin-paulraj, but frustratingly kept failing...
Until I noticed that the checkbox at the bottom of the wizard "Copy projects into workspace" is checked by default, and does not have an eventhandler attached to it. So if you do not clear this box before selecting the directory it will tell you that "Some projects cannot be imported because they already exist in the workspace." Clearing the checkbox after this will not trigger a form refresh and the Finish button will remain disabled.
TIP: once the checkbox is cleared, select the directory again will trigger form validation and allow you to proceed.
Try importing existing project:
http://publib.boulder.ibm.com/infocenter/wf/v2r7m0/index.jsp?topic=/org.eclipse.platform.doc.user/tasks/tasks-importproject.htm
The answer for me was to make sure that I was in the correct working set.
I was in the working set from training and had not placed my new project into a working set at all.
While the above answers will most likely place your project into Eclipse, a working set will exclude you from seeing any project that is not placed in it from the package explorer.
My personal answer was to create a new working set to keep it separate from work, via the context menu from the upside down triangle at the top left of the package explorer.
Yours may be to modify your current set by adding the new project to it. This option is also located in the same menu.
My circumstance could have been avoided in the "new project" wizard, if I had placed it in a set from there.
I hope this has been useful. Please, feel free to ask for clarification.

How to exclude specific folders or files from validation in Eclipse?

We have a bunch of malformed XML files used in unit tests to check if our application can handle them.
Eclipse marks this XML files with errors, polluting the "problem view".
Is there a way to exclude a specific folder from Eclipse validators?
In the Validation section of Window > Preferences you can add different rules in settings (...) column, you can add a "Folder or file name rule" in the Exclude Group for XML types.
This is what I do to exclude a folder from validation in a project. For me this works for javascript and other warnings/errors.
Right Click Folder
Click Resource, ResourceFilters
Click "Add"
Set the following Exclude All, Files and Folders, All Children, add an asterisk (*) to the File and Folder Attributes input field (highlighted in the image below)
Note: In Eclipse Indigo you have to Right click the folder and select properties and then select resource in the left navigation.
With Eclipse 2018-12 in an Angular-Project, i was able to get rid of validation errors in the folders, npm generates (like node_modules), just by selecting a folder and check the "Derived" check mark under "Resource".
After a Project -> Clean the Errors are gone.
Go to Window > Preference > Validation
Find the type of validation you want to disable, for instance XML.
Right-click it and select "Settings":
In the "Exclude Group", click "Add rule", select "Folder or file name":
Note: I got here because I was searching for an easy way to exclude specific folders from validation in Eclipse. My answer does not work for the specific case detailed in the question (which is about hiding invalid XML files from validation).
How to exclude specific folders or files from validation in Eclipse?
When the folders is in the build path, and when the annoying issues are only warnings, there is a way that is straight forward:
Right Click Folder
Properties
Java Compiler
Check Ignore optional compile problems
Ok
The folders will still be validated, errors will be reported, but all the warnings will be ignored by Eclipse. For example, that's ideal for a folder of generated sources.
you may also adjust the output/view side. So go to Show-Menu of Problem-View and filter Display only for selected Items.

Excluding/Disabling Validation in Eclipse

I have the (mis)fortune of having a large project source-base in which I am working primarily on PHP and JavaScript. I have to have the full project area as the project root in Eclipse, but unfortunately this includes several directories that drive the validation built into WST/DLTK/etc. nuts.
I have tried disabling all validators in the project properties. I have gone into the validators one at a time and added rules to the "Exclude Group" set to exclude the specific folders. I have removed the folders from the PHP build path in the project properties. And yet, my Problems view/tab is still littered with thousands of red flags that stem mostly from a folder that we use to keep copies of external elements (Apache, PHP, etc.). You know, typical "have a copy of the specific versions we currently use" sort of thing.
The signal-to-noise ratio is so bad that I'm unable to use the view at all, which is a shame. If I'm not going to have the benefits of the IDE, I might as well be using vim for this (I use it for other stuff, but for this codebase a good IDE is a better choice, providing I can get it to work). It seems to me that it would be an obvious feature to be able to right-click a folder in a project and select "Exclude from Validation", but alas there is no such feature. Is there another way to get the validators (PHP, HTML, etc.) to ignore the folders I need ignored?
Tried solution;
Right click project
Select properties
Select validation
Check Enable Project specific settings
On the XML Validator row, click the '...' button
Select Exclude Gruop
Click Add rule
Select 'Folder or file name'
Click Next
Select files or folder which are not validated.
Click Finish
Click OK
Click OK
This solved my problem. Because eclipse validation gives error for generated GWT files.
Best regards.
I came upon this question while looking for the same answer. I will list the steps I did here and hopefully it will help someone in the future.
I am using Eclipse 4.1 and I do the following to exclude validation for specific xml files. I am sure if you configure the different validators it will work for other files as well.
Go to Preferences -> Validation
Find the Validator you wish to change and select settings (not all of the validators have settings, hopefully yours do).
In the settings you can add an Exclude Group where you can add a rule to specify to exclude the validator for specific extensions, folder or file name, project nature, facet or content type.
I have Eclipse for PHP Developers and I was dealing with the same issue.
In addition tot he excellent answers above, I have one more suggestion.
My first recommendation is not to use Aptana unless you actually want those validators (as they are nearly impossible to turn off from my experience).
Beyond that, go to File -> Properties -> Builders, and deselect "Validation" and "Script Builder" and "JavaScript Validator".
So far it's helped speed up some operations tremendously.
I also recommend disabling "Automatic Build". Because you're using PHP, the odds that you actually need it to build anything if you don't want validation is slim.
In the main menu, go to Project and uncheck "Build Automatically". You will want to build your project every now and then by right clicking on the project and selecting "Build Project".
All the above steps have helped me get the basic editor, which is exactly what I wanted.
I used to exclude resources from validation via project specific Exclude Group (as the most answer here suggests). But in case anyone is still having problems with disabling validation for a specified folder in 2014 - just mark the folder resource as Derived:
This should disable validation for that folder.
If you are using EGIT you might also want to disable automatic inclusion of derived resources in .gitignore:
It is not really possible to select a directory, at least under Windows.
After having pressed Preferences->Validation->Settings->Add Exclude Group->Add Rule->Folder or filename->Browse Folder->(selecting some directory)->[OK]
The "Browse for folder" dialog is being closed, with the "File or folder" field staying empty.
I had the same problem with the web app i'm developping.
I ended up disabling automatic build, and building once a day (Project->Build automatically), that way i still get the benefits of code completion from libraries, while speeding up the program on older computers.
I found in the project properties there is a Builders category. In the list of builders I had a JavaScript Builder. I deselected this builder and all my annoying javascript validation woes went away.
this worked for me:
Properties > Builders section and unchecking the corresponding box. https://bugs.eclipse.org/bugs/show_bug.cgi?id=317833
seems to be a bug in some versions of eclipse.
There are more gloabal validation parameters. You can suspend all validation (or only the ones you don't need) by going to:
Window > Preferences > Validation.
Here, check the box "Suspend all validators".
Alternatively, uncheck the validators you don't need from the list below.
A full build will be requested which might take some time. But Eclipse will run a lot faster afterwards [But without validation of course]
http://www.flickr.com/photos/jesuspresley/5094048124/
Solution.
Go configure what's displayed in the Problems View like lothar proposed, create new custom filter and in "Scope" area choose "On working set". Now press the button right below this option to configure what working set would it be: in working set selection pop-up hit the "New" button and mark all your project files EXCEPT those you want to exclude from validation. You might want to save this working set under convenient name, like "No_Validation_Set".
Summary:
1) working set excluding problematic files.
2) custom Problems View filter to operate on this set.
Issues:
when adding new files to project you need to update your working set, so they are validated too.
When I excluded files from validation for the project, my setting didn't seem to be recognised until I restarted Eclipse and cleaned the project.