I want to separate my junit test and integration test separate. So I created a separate profile in pom.xml for the integration test as follows:
<profiles>
<profile>
<id>integration-test</id>
<properties>
<test>IntegrationTestTrigger</test>
<spring.profiles.active>integration-test</spring.profiles.active>
</properties>
</profile>
<profiles>
The when I run the maven command mvn test -Pintegration-test
, it is picking the test class as defined in the <properties>
tag shown above as IntegrationTestTrigger
. But it is not setting the spring.profiles.active
property. So the test is starting with default profile. It is working fine with the maven command mvn test -Dtest=IntegrationTestTrigger -Dspring.profiles.active=integration-test
But as per my organisations jenkins setting, I need to run mvn test -Pintegration-test
for the integration test, so I cannot add any extra environment variables to mvn command
The properties at the is meant for property substitution at the .properties/.yml file inside resources folder.
Example:
application.yml:
pom.xml:
Here, the
@spring.profiles.active@
will be replaced with dev during compile(by maven-resources-plugin plugin). Spring Boot uses@
as the resource delimiter at the spring-boot-starter-parent pom. You can change it to any character by changing the following propertySee https://github.com/gtiwari333/spring-boot-blog-app/blob/master/pom.xml#L436 for an complete example
See also: https://docs.spring.io/spring-boot/docs/current/reference/html/howto.html#howto-automatic-expansion-maven