So, I ended up with a bit of a hack for a solution. I ended up writing
an ArtifactTypeHandler to handle 'ejb-client' type artifacts, which
makes sure it copies it with the correct name.
I also overrode the ejb:ejb-client and ejb:install-client goals so that
they use the new type handler.
<goal name="qpass:ejb:ejb-client" description="Build a client ejb
file">
<ant:jar
jarfile="${maven.build.dir}/${maven.final.name}_client.jar"
basedir="${maven.build.dest}"
excludes="${maven.ejb.client.base.excludes},${maven.ejb.client.excludes}
"
index="${maven.ejb.client.index}"
>
</ant:jar>
</goal>
<goal name="qpass:ejb:install-client"
prereqs="qpass:ejb:ejb-client"
description="Install the ejb client in the local repository">
<j:new var="typeHandler"
className="net.qpass.maven.ejbclient.EjbClientArtifactTypeHandler"/>
<artifact:install
artifact="${maven.build.dir}/${maven.final.name}_client.jar"
type="ejb-client"
project="${pom}"
typeHandler="${typeHandler}"/>
</goal>
Suggestions? Any better ideas?
-----Original Message-----
From: Tom Bostelmann [mailto:[EMAIL PROTECTED]
Sent: Wednesday, January 26, 2005 10:06 PM
To: Maven Users List
Subject: RE: installing different named artifact...
Actually, in addition to that bug it also doesn't work well with a
multi-project. In a multi-project it executes ejb:ejb, however, if I
want to include the ejb:install-client, I end up having to do ejb:ejb
again because the ejb:ejb-client has a prereq of "ejb:ejb".
So, there are two problems:
1.) ejb:install-client doesn't install the client jar in your local
repository with a name that ends with '-client' (it uses the same name
as the ejb-jar artifact which is confusing).
2.) You can't have the project build both the client and the ejb-jar
without building the ejb-jar twice (because ejb:install-client 'prereqs'
ejb:ejb).
How have others solved this??
-----Original Message-----
From: Brett Porter [mailto:[EMAIL PROTECTED]
Sent: Wednesday, January 26, 2005 5:47 PM
To: Maven Users List
Subject: Re: installing different named artifact...
looks like a bug then, though I'll defer to someone with more
knowledge of the ejb plugins as I don't use them directly.
- Brett
On Wed, 26 Jan 2005 17:40:20 -0800, Tom Bostelmann <[EMAIL PROTECTED]>
wrote:
> It copies it to the repository under jars using the same name,
> unfortunately.
>
> Here's the end of the output of 'maven ejb:install-client'
>
> ejb:ejb:
> [echo] Building ejb qpass_nextel_outbound-1.0
> [jar] Building jar:
>
/home/tbostelm/views/tbostelm_cnextel_bnd_2/vobs/Cnextel/ejb-jars/outbou
> nd/target/qpass_nextel_outbound-1.0.jar
>
> ejb:ejb-client:
> [jar] Building jar:
>
/home/tbostelm/views/tbostelm_cnextel_bnd_2/vobs/Cnextel/ejb-jars/outbou
> nd/target/qpass_nextel_outbound-1.0-client.jar
> Copying: from
>
'/home/tbostelm/views/tbostelm_cnextel_bnd_2/vobs/Cnextel/ejb-jars/outbo
> und/target/qpass_nextel_outbound-1.0-client.jar' to:
>
'/home/tbostelm/.maven/repository/qpass_nextel/jars/qpass_nextel_outboun
> d-1.0.jar'
> Copying: from
>
'/home/tbostelm/views/tbostelm_cnextel_bnd_2/vobs/Cnextel/ejb-jars/outbo
> und/project.xml' to:
>
'/home/tbostelm/.maven/repository/qpass_nextel/poms/qpass_nextel_outboun
> d-1.0.pom'
> BUILD SUCCESSFUL
> Total time: 19 seconds
> Finished at: Wed Jan 26 17:38:00 PST 2005
>
> -----Original Message-----
> From: Brett Porter [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, January 26, 2005 5:29 PM
> To: Maven Users List
> Subject: Re: installing different named artifact...
>
> doesn't the ejb plugin already do this for you?
>
> - Brett
>
> On Wed, 26 Jan 2005 17:03:05 -0800, Tom Bostelmann
<[EMAIL PROTECTED]>
> wrote:
> > I'm sure this question has been asked several times but I'm not sure
> > what the 'best-practice' is at this point. My problem is that I'm
> > generating an ejb-jar and would like the same project to generate
the
> > client-jar. So, the ejb-jar would have the name outbound-1.0.jar,
and
> > would be of type 'ejb', and the client would be
> outboud_client-1.0.jar,
> > which would be of type 'jar'. How do I do this using the same Maven
> > project?
> >
> > I've tried fiddling with 'maven.final.name' and setting the
> > 'pom.artifactId' but they both ultimately get installed using the
same
> > name (just different types).
> >
> > What's the best practice here?
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]