We want the defaults for each module to live in a file in that module, and I think keeping configuration values in a properties file located in the resources directory is cleaner and easier follow than keeping them in a static block.

I don't know how you would merge property files or java classes during creation of an uberjar (which is something 3rd parties wouldn't be able to take advantage of anyway). And even if that were possible, it doesn't strike me as a really good idea.

What would you suggest instead?