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

Reply via email to