I just installed PMD and its pretty janky from my experience, for example I have two classes and it shows the "same name" error for one class but completely ignores it for the other class....
It appears that the PMD rule is case-sensitive, so the second class doesn't match, as there's a difference in case. This is actually a bug. I'll see if I can either patch it myself with a PR, or get someone who can.
Edit: This will require more research. The name comparison is case insensitive, so maybe something else is going on here. I'm going to try to reproduce this issue locally.
In the meantime, I do personally recommend Apex PMD. It's not only one of the best tools out there, it's practically the only tool out there that's specifically designed for Apex Code.