Hello,

I'm trying to build "installer" (by which I mean, a tarball inside of
which is an install.sh as well as whatever other things I decide to
put in) distributions for some of my maven projects.

In some cases, I want to make the installer the only "artifact" of the
build. Problem is, there's no "packaging" type that allows this. If I
select <packaging>jar</packaging>, I get an empty jarfile as primary
artifact, and my installer assembly attached.

Tinkering around, I've discovered that creating a mojo-less plugin to
map a build lifecycle for my own <packaging> type
(<packaging>installer.tgz</packaging>) almost works. I created a maven
plugin that provides a META-INF/plexus/components.xml to describe
lifecycle for my chosen packaging name. I modified the standard
lifecycle by removing the <compile>,
<process-test-resources>,<test-compile>, <test> phases, and I bound
the <package> phase to
org.apache.maven.plugins:maven-assembly-plugin:single. It's a little
kludgy: in the poms that use the new packaging, I *must* configure the
assembly plugin, but it's the simplest thing I've found that works. (I
haven't yet crossed the conceptual threshold of wanting to write my
own mojo that essentially duplicates the assembly mojo - including
parsing an xml descriptor).

I'm writing today to maven-users to see if there's anybody out there
that has already solved this kind of problem (building "installer"
packages that can go into the repository without a "primary" artifact
specified by the packaging type) a better way.

One little problem with my chosen approach has been that I always get
a warning from mojos that implement the install and deploy phases: "No
primary artifact to install, installing attached artifacts instead."

Hoping to hear better ideas,
--
Tommy

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to