I saw some activity regarding the creation of some Maven archetypes for Sling projects. Before going down that path, I'd like to suggest enhancing the maven-sling-plugin with a new goal which will handle much of the configuration being done now via the maven-dependency-plugin. Specifically, I think the following can be done inside a single goal: * Unpacking the org.apache.sling.launchpad.bundles assembly in the correct location. * Placing the base JAR file in the correct location * Adding additional bundles to the start level-based directory name
The most significant benefit of doing this is to dramatically simplify the pom files. The dependency plugin plus the org.apache.sling.launchpad.bundles dependency takes up about 80 LOC (more once/if my patch for SLING-1179 is committed) and I think this can be reduced to around 20. This is also obviously less error-prone. The other benefit is to reduce the (already proven to be error-prone) duplication of the launchpad.base version in the pom. I'm proposing that this new goal in the sling Maven plugin extract the base version from the dependency list. I imagine that this goal would use the packaging type to automatically adjust to the differences in building a standalone app vs. a webapp (i.e. automatically include pax-web in standalone mode and felix-bridge in webapp mode). You can see a brief sample of what I'm describing here: http://gist.github.com/233240 Thoughts? Justin
