Community
Participate
Working Groups
Build F1 If you make a trivial change to a file that invokes a build, such as changing the text in a comment, then all of the external tool builders will not get run. I defined simple external tools 'Before' and 'After' to run before and after the Java builder, and output some text to the Console Log. When I make a trivial change to a java file, the 'After' external tool does not get run. If 'After' is moved in the build order to before the Java builder, it is still not run.
If the build is not a full build, only the first external tool will run. This is because all tools use the ExternalToolBuilder for the project (there is only one ExternalToolBuilder per project). When BuildManager.needsBuild(InternalBuilder) is called to check whether the second external tool should be run, it is passed the project's ExternalToolBuilder as an argument. It compares the workspace's current element tree with the tree after the last build by the builder. Since the first and second external tools use the same ExternalToolBuilder, the tree after the last build is the tree after the first external tool was run. This will always be the same as the current workspace tree, so needsBuild() returns false, and the second external tools builder is not run.
*** This bug has been marked as a duplicate of 17478 ***