Working out the multi-module maven setup

EDIT: thread title updated, because the thread kinda derailed towards the multi-module maven setup, which seems to be working out very well 
TL/DR : I'm considering writing a bunch of automated tests (not unit tests though), which might also (eventually) involve some refactoring to make code more testable.
Long version :
I would like to write automated tests to verify that rules and cards are implemented correctly. Such tests would set up a minimal game situation, let some time pass and/or have one of the players (attempt to) perform some action and/or let some more time pass, and then inspect the game situation.
These kind of integration tests don't directly point to problems (as unit tests might), but they are useful to have around to detect new changes or bugfixes breaking previous functionality.
Of course, it might be necessary to do some refactoring to make it easier to do all that. Such changes would be purely technical (ie, moving code around, without changing functionality from the point of view of the end user), but they obviously do have an impact on the developers... Of course I would not do that any more than needed, and only after making sure that the refactorings don't end up breaking anything either. Such refactorings would have to happen on a separate branch, to make sure that other developers can review them without any impact on trunk.
Some background :
I've been coding for about 12 years, working as a software developer for 6 years. I mainly do Java-based web development. The things I enjoy most about my job/hobby are bug-hunting, refactoring, performance-improvement, writing non-trivial automated tests, and writing clean code.

TL/DR : I'm considering writing a bunch of automated tests (not unit tests though), which might also (eventually) involve some refactoring to make code more testable.
Long version :
I would like to write automated tests to verify that rules and cards are implemented correctly. Such tests would set up a minimal game situation, let some time pass and/or have one of the players (attempt to) perform some action and/or let some more time pass, and then inspect the game situation.
These kind of integration tests don't directly point to problems (as unit tests might), but they are useful to have around to detect new changes or bugfixes breaking previous functionality.
Of course, it might be necessary to do some refactoring to make it easier to do all that. Such changes would be purely technical (ie, moving code around, without changing functionality from the point of view of the end user), but they obviously do have an impact on the developers... Of course I would not do that any more than needed, and only after making sure that the refactorings don't end up breaking anything either. Such refactorings would have to happen on a separate branch, to make sure that other developers can review them without any impact on trunk.
Some background :
I've been coding for about 12 years, working as a software developer for 6 years. I mainly do Java-based web development. The things I enjoy most about my job/hobby are bug-hunting, refactoring, performance-improvement, writing non-trivial automated tests, and writing clean code.