I have a top-level project with children modules. Three of the children
modules create rpms, so I want the top-level project to create an empty rpm
with 'requires' for these three rpms. The relevant part of my pom.xml is...
<build><plugins><plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>rpm-maven-plugin</artifactId>
<configuration>
<name>eso</name>
<requires>
<require>eso-webapp</require>
<require>eso-core</require>
<require>eso-dbtools</require>
</requires>
<mappings>
</mappings>
</configuration>
</plugin></plugins></build>
Other settings for the plugin are in <pluginManagement>.
I tried creating this without the <mappings> section, but it complained that
<mappings> didn't exist, so I created the empty <mappings>, but now rpmbuild
dies because the plugin-generated spec file contains this...
%install
if [ -e $RPM_BUILD_ROOT ];
then
mv /home/lezz.giles/osa/target/rpm/eso/tmp-buildroot/* $RPM_BUILD_ROOT
else
mv /home/lezz.giles/osa/target/rpm/eso/tmp-buildroot $RPM_BUILD_ROOT
fi
...which is a problem because tmp-buildroot contains no files, and so (long
story short) tmp-buildroot/* upsets shell and causes it to die.
One solution is to check explicitly for no <mapping> elements and to generate
an appropriate %install section.
I can't believe I'm the first maven rpm user to want to do this, so if there is
a proper way to get an empty rpm that would be good to know. I think my
workaround in the short term will be to have a dummy file installed by the rpm,
just to keep it happy.
This email and attachments may contain privileged or confidential information
intended only for the addressee(s) indicated. The sender does not waive any of
its rights, privileges or protections respecting this information. If you are
not the named addressee, an employee, or agent responsible for sending this
message to the named addressee (or this message was received by mistake), you
are not authorized to read, print, retain, copy or disseminate this message or
any part of it. If received in error, please notify us immediately by e-mail,
discard any paper copies and delete all electronic files of the email.
Computer viruses can be transmitted via email. The recipient should check this
email and any attachments for viruses. Email transmission cannot be guaranteed
to be secured or error-free as information could be intercepted, corrupted,
lost, destroyed, arrive late or incomplete, or contain viruses. The sender
accepts no liability for any damage caused by any transmitted viruses or errors
or omissions in the contents of this message.
Overture Networks, Inc. 637 Davis Drive, Morrisville, NC USA 27560
www.overturenetworks.com