I just saw this old question and I felt compelled to mention the book Continuous Delivery in Java, which covers precisely this kind of thing.
Full disclosure: I'm one of the co-authors, so obviously biased 😊