The files in this directory supply property values that will be used when maven performs resource filtering. "Filter" in maven terms, means replace variables with their values. The active profile from profiles.xml specifies which of these files to use. In addition to the values supplied by these property files, the filteriing uses properties set in .m2/settings.xml, profiles.xml and pom.xml. We store data that needs to be kept secure, like login and password strings, in .m2/settings.xml. Most other properties are set in the properties files in this directory. For example, database connection info that will be used in resource filtering of /src/main/resources/database/database.properties is specified in these properties files, however the database.properties file references ${database.username} and ${database.password} which aren't specified in these properties files since those values need to be kept secure (i.e. not in svn). Instead we add properties for ${db.ngbw.test.username}, ${db.ngbw.production.username}, etc to our private .m2/settings.xml and in the profile.xml we assign the correct ones for the type of build we're doing to database.username and database.passwords properties, with statements like: ... ${db.ngbw.test.username} ... Note that if we tried to write database.username=${db.ngbw.test.username} in the properties files in this directory, instead of setting database.username in profiles.xml, the value of database.username used for filtering would literally be "${db.ngbw.test.username}", since variables aren't processed in arbitrary files like this as they are in pom.xml or profiles.xml AND this file isn't filtered the way resource files are.