We use maven 3.2.1 for our build, and my workaround to this issue was to set up a separate maven project downstream from my main build, focused solely on static analysis. That one uses maven 3.0.4, and runs the usual set of suspects (findbugs, pmd, checkstyle).
Just remember, for that one you need to also run the compile target, as findbugs needs the bytecode in order to do its analysis (so yeah, it's pretty redundant, but it works). When my static analysis requirements become more firm, I may set it so the analysis is the *upstream* project (meaning the app will not get to the package phase under maven 3.2.1 if it fails the static checks that run with maven 3.0.4), but that's something to tackle another day.
Results/graphs/reports are still published as you'd normally expect them to, as they take advantage of the findbugs, checkstyle, and static analysis Jenkins plugins.
I did not need to explicitly install maven 3.0.4 on my server. I let Jenkins do that for me in my project configuration. I set up my overall Jenkins config to have two different maven builds available (these are local to Jenkins), and specified the one I wanted in my individual projects. NOTE: These projects are both Maven projects. They are not freestyle projects. Nothing against freestyle, just wanted to point out that you can work your way around this problem either way.