Configurar o Java EE 6 para dev / QA / prod

Eu tenho um aplicativo Java EE 6 que eu construo com o Maven, codigo no NetBeans 7 e implemento no GlassFish 3.1.2. Quando estou perto da conclusão, eu me encontro implementando demo builds.

O problema é que eu não tenho nenhuma maneira fácil de construir para ambientes diferentes, como dev, QA, demo, prod, etc. Para algumas coisas, eu tenho usado uma classe Java com um monte de getters estáticos que retornam valores baseados no valor de uma constante de ambiente. Mas isso não me ajuda com a configuração condicional

javax.faces.PROJECT_STAGE (web.xml)credenciais de banco de dados (glassfish-resources.xml)servidores de email (glassfish-resources.xml)Nível de log do JPA (persistence.xml)

e provavelmente uma série de outras coisas que não consigo pensar agora que estão espalhadas por arquivos XML.

Existe alguma maneira de definir várias versões desses arquivos de configuração e apenas definir um sinalizador em tempo de compilação para selecionar o ambiente, enquanto o padrão é dev quando nenhum ambiente é especificado? Existe uma maneira que eu poderia fazer o Maven trabalhar para mim neste caso?

questionAnswers(3)

yourAnswerToTheQuestion