The best I've been able to come up with for these sorts scenarios has been to use a file-based activation trigger. 
eg my parent pom has
<profile>
   <id>maven-war-project</id>
   <activation>
     <file><!-- add a file named .maven-war-project-marker to webapp projects to activate this profile -->
       <exists>${basedir}/.maven-war-project-marker</exists>
     </file>
   </activation>
   <build>
     <plugins>
   <!-- configuration for webapp plugins here  -->
     </plugins>
   </build>
and webapp projects that inherit from this parent contain a file named 
'.maven-war-project-marker'
that activates the profile
This looks pretty obtuse but works fairly reliably whereas
 - using property-activation is unreliable if a different person or system does the build,
 - inheriting from type-specific parents became a bit cumbersome for me as the grandparent-pom changes version relatively frequently as it is used to define 'standard' or preferred versions of common dependencies which in turn required corresponding releases of all of the type-specific parents with no change other than the grandparent version