I might have come up with a way to use the feature plugin packagings in the 
karaf build without profiles as long as we don't use backwards incompatible 
changes in our builds.  The main problem I know about is using the release 
plugin to do a release because the new version of the features-maven-plugin 
isn't available in a maven repo yet.

The idea is to define the version of the features-maven-plugin in a maven 
property and override it on the build command line to a previously released 
version.

I've tried this locally with the 2.1.99-SNAPSHOT branch and 2.99.99-SNAPSHOT 
trunk.

First I built the 2.1.99-SNAPSHOT tree to get this version of the plugin in my 
local repo.

Then I cleaned out any mention of the 2.99.99-SNAPSHOT plugin from my repo and 
build trunk with  

mvn clean install -DfeaturesPluginVersion=2.1.99-SNAPSHOT 

aside from some test failures and problems with a missing war deployer and 
manual artifacts, this worked fine, using the old 2.1.99-SNAPSHOT plugin.  It 
also built the 2.99.99-SNAPSHOT plugin.

Then I built trunk 
mvn clean install

which worked just as well, using the new plugin.

So, I think we can leverage this idea in the release plugin, since it builds 
twice with the new version: for release:prepare we use something on the command 
line to get the plugin version into the forked maven command line, and for 
release perform we leave this out.

I think to actually find out if this will work I'll need to do a 
release:prepare on trunk, creating an svn tag which I can then remove again.  
Does this seem worth experimenting with further or is it too complicated or 
does someone know that it won't work?

I think this actually ought to work with version ranges on the plugin but 
AFAICT this is going to show up so many maven bugs as to be unworkable.

thanks
david jencks

Reply via email to