...
- Common dependencies to be used by the entire application should be defined as properties in cps-dependencies pom.xml
- Eg: groovy.version, spock-spring.version
- Other common properties to be used by the entire application should be defined as properties in cps-parent pom.xml.
- Eg: spring-boot-maven-plugin.version, java.version, minimum-coverage, base.image
- Each module can specify the properties which is exclusively used by the module. In case a module needs to override a property defined in the cps-parent pom.xml, that could also be done in the properties section.
- In case a property is only used in a particular profile, then it is advised to define the property inside the profile. In case a profile needs to override a property defined in the pom, that could also be done in the profile's properties section.Eg: CPS CPS has different profiles defined namely cps-docker, ncmp-docker and cps-ncmp-docker for building different docker images. Each profile could define their own image.name property to be used for deriving their own docker image name.
- Eg : image.name is set to cps-service in cps-docker profile
- image.name is set to cps-and-ncmp in cps-ncmp-docker profile. A property image.name could be defined in each profile.