Thanks for this write up! I completely agree with this approach, Domain Driven Design comes to mind. I see a lot of js projects separating the tests from the production code and I think this is indeed inherent from the maven project convention. We should definitely take advantage of the configuration flexibility in our build tools to make our code easier to work with. And putting the tests next to the production code makes sense in this light.