Usé el complemento de propiedades para resolver esto.
Las propiedades se definen en el pom y se escriben en un archivo my.properties, donde luego se puede acceder a ellas desde su código Java.
En mi caso, es el código de prueba el que necesita acceder a este archivo de propiedades, por lo que en el pom el archivo de propiedades se escribe en el testOutputDirectory de maven:
<configuration>
<outputFile>${project.build.testOutputDirectory}/my.properties</outputFile>
</configuration>
Utilice outputDirectory si desea que el código de su aplicación pueda acceder a las propiedades:
<configuration>
<outputFile>${project.build.outputDirectory}/my.properties</outputFile>
</configuration>
Para aquellos que buscan un ejemplo más completo (me tomó un poco de trabajo hacer que esto funcionara ya que no entendía cómo el nombre de las etiquetas de propiedades afecta la capacidad de recuperarlas en otra parte del archivo pom), mi pom se ve de la siguiente manera:
<dependencies>
<dependency>
...
</dependency>
</dependencies>
<properties>
<app.env>${app.env}</app.env>
<app.port>${app.port}</app.port>
<app.domain>${app.domain}</app.domain>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<phase>generate-resources</phase>
<goals>
<goal>write-project-properties</goal>
</goals>
<configuration>
<outputFile>${project.build.testOutputDirectory}/my.properties</outputFile>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Y en la línea de comando:
mvn clean test -Dapp.env=LOCAL -Dapp.domain=localhost -Dapp.port=9901
Entonces se puede acceder a estas propiedades desde el código Java:
java.io.InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("my.properties");
java.util.Properties properties = new Properties();
properties.load(inputStream);
appPort = properties.getProperty("app.port");
appDomain = properties.getProperty("app.domain");