You need to put prune before the other tests and precede the other tests with -o. The -prune option prevents decending the directory and returns true.
Here is an example which excludes the ./udev directory:
Code:
find ./ \( -path './udev' -prune \) -o -type f -name "*.war" -print
Without the -print at the end the directory, './udev' is printed but its files are not.
Here I'll locate all "*.war" files excluding both ./udev and ./webarchives directories:
Code:
find ./ \( -path './udev' -o -path './webarchives' \) -prune -o -type f -name "*.war" -print
Start of with just the -path tests and make sure that each directory you want excluded are printed out. Then group them (if there is more than one -path test); add -prune ; add your normal test and finally add -print at the end.