site:deploy’s wagon missing a wheel

tonight’s hate comes to us from maven’s site plugin and it’s scp wagon.

first, maven 3 doesn’t support scp/ssh out of the box. why, i don’t know and i find it amusing that maven 2 is the one providing scp support but ok, that’s not the worst thing in the world, right?

wrong…

once again, i have to add another chunk of xml

<plugin>
...
  <dependencies>
    <dependency>
      <groupId>org.apache.maven.wagon</groupId>
      <artifactId>wagon-ssh</artifactId>
      <version>1.0</version>
    </dependency>
  </dependencies> 
</plugin>

to the pom.

maven has the ability to auto-load extensions for you using the <extensions> tag, but alas, the site plugin doesn’t expose it. doing so would make it easier on end users and those that really care about unnecessary dependencies being downloaded (how can they tell anyway, it seems every time i tweak my poms maven’s downloading something else) can control specify the specific wagon(s) they want.

but ok, having to edit the pom isn’t that bad. i have to do it for everything else, so why should this be any different?

what i find to be truly annoying in this case is the scp url doesn’t support tildes (~), which means i have to hard code the full path to my hosted home directory – which has the potential to change if they migrate my account to another machine – otherwise it tries to create the destination directory under / on the hosting server. it seems like there should be some kind of allotment for this, but there is not.

i filed an enhancement, we’ll see what happens.

p.s. i tried every a few variations of the tilde in the url and none worked – if there’s a way this can be done, i will happily admit i was wrong and withdraw this portion of my hate.

p.p.s just so there’s a little love, the site plugin is one of the reasons i decided to stick with maven instead of creating build scripts with ant.