Case closed. Turns out I had improper JAVA_HOME defined in ~/.mavenrc
which overrides user env and that is why it worked as root. I had to
debug the mvn bash script to get to the core of it. Too bad maven fails
with not much info in case like this. If you run with -X it could at
least tell you the current config and where it is taking the vars. :sadface:
Thanks everyone for given help.