Para citar el maven documentation on this:
elemento Un perfil contiene tanto una activación opcional (un disparador perfil) y el conjunto de cambios que deben introducirse en el POM si ese perfil ha sido activado. Por ejemplo, un proyecto creado para un entorno de prueba puede apuntar a una base de datos diferente a la de la implementación final.
O las dependencias pueden extraerse de repositorios diferentes según la versión JDK utilizada.
(El subrayado es mío)
sólo hay que poner la dependencia para el perfil release
dentro de la propia declaración de perfil y hacer lo mismo para debug
.
<profiles>
<profile>
<id>debug</id>
…
<dependencies>
<dependency>…</dependency>
</dependencies>
…
</profile>
<profile>
<id>release</id>
…
<dependencies>
<dependency>…</dependency>
</dependencies>
…
</profile>
</profiles>
Esto se puede utilizar cuando se dirigen a diferentes servidores web. Por ejemplo, al compilar para un servidor JavaEE 5, que ofrece bibliotecas como JAXB, que no debe incluir en su archivo war, en lugar de compilar para un servidor JavaEE 1.4, donde debe incluir el jar JAXB. – Leonel