Wayne Fay wrote:

What are you currently getting out of Maven?

As described on the example pages from the Maven docs I refered to: A manifest file with data meeting the "Main Attributes" specification on http://java.sun.com/j2se/1.4.2/docs/guide/jar/jar.html#Manifest%20Specification in it. So far, so good.

What do you want to get out of Maven?

For some particular reason, we need to provide some more data within individual sections of the manifest files of our internal applications. E.g. the dependencies, the developers, the Cruisecontrol build label ... stuff like that. For Maven 1 we had our own plugin creating a manifest file with all the needed information in it. Since we're finally migrating to Maven 2 now, I'm looking for possibilities to avoid the need for an extra plugin this time.

What have you tried which did not work as you required?

1) To get the developers listed within the manifest, I tried this:

        <manifestEntries>
             ...
             <developers>${pom.developers}</developers>
             ...
        </manifestEntries>

The resulting - not very useful - entry in the manifest file looks like this:

developers: [EMAIL PROTECTED], org.apache.mave
 [EMAIL PROTECTED], [EMAIL PROTECTED]

What I would have expected is simply a list of the developers in a format like the following, possibly within an own section called "developers":

developer.<id>=<name>
developer.<id>=<name>
...

For me that feels "naturally": When I specifiy a "list" node of the POM as a manifest entry, I'd expect the respective list in the resulting manifest file within an own section labelled by the "list" header (the surrounding XML element).

2) As I said, we need to get the dependencies listed in an individual section of the manifest file. When I add

<dependencies>${pom.dependencies}</dependencies>

to my configuration I get the following result in the manifest file:


dependencies: [Dependency {groupId=jstl, artifactId=jstl, version=1.1.
 2, type=jar}, Dependency {groupId=jspapi, artifactId=jsp-api, version
 =2.0, type=jar}, Dependency {groupId=servletapi, artifactId=servlet-a
 pi, version=2.4, type=jar}, Dependency {groupId=commons-lang, artifac
 tId=commons-lang, version=2.1, type=jar}, Dependency {groupId=commons
 -httpclient, artifactId=commons-httpclient, version=3.0.1, type=jar},
  Dependency {groupId=commons-codec, artifactId=commons-codec, version
 =1.3, type=jar}, Dependency {groupId=commons-io, artifactId=commons-i
 o, version=1.0, type=jar}, Dependency {groupId=commons.monitoring, ar
 tifactId=commons-monitoring, version=1.0.0, type=jar}, Dependency {gr
 oupId=cglib, artifactId=cglib-full, version=2.0.2, type=jar}, Depende
 ncy {groupId=springframework, artifactId=spring-core, version=1.2.7,ยท
 type=jar}, Dependency {groupId=springframework, artifactId=spring-moc
 k, version=1.2.7, type=jar}]

This format might meet the specification, however, it is hard to read from within an application (at least it needs extra code to parse it). Here also applies what I've said above about lists.

Another interesting question in this case: Is it possible to get the complete dependency graph written into the manifest file? ATM, only the dependencies configured in the pom.xml are considered.

The final "work-around" is simply to write your own static Manifest
file and tell Maven where it is, and it will use it instead of
generating one itself. But this is a last-resort kind of thing,
usually.

That's possibly where I will end up (like with our existing Maven 1 solution). However, as I already stated, I try to avoid that by any means.

Thanks for your patience.

-Gisbert

--
Gisbert Amm
Softwareentwickler Infrastruktur
Telefon: (0721) 91374 - 4224
Telefax: (0721) 91374 - 2740
E-Mail: [EMAIL PROTECTED]
Internet: www.1und1.de

1&1 Internet AG
Elgendorfer Strasse 57
56410 Montabaur

Amtsgericht Montabaur HRB 6484

Vorstand: Ralph Dommermuth, Matthias Ehrlich, Andreas Gauger (Vorsitzender), Matthias Greve, Henning Ahlert, Norbert Lang, Achim Weiss, Robert Hoffmann,
Aufsichtsratsvorsitzender: Michael Scheeren

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

Reply via email to