How the hell did anyone convince anyone else to use this crap?!

With that off my chest - I *have to* use mvn2 on my current project,
anyone have experience getting maven to actually do anything useful?
I don't know maven well and I'm happy to concede that I may be a
witless luser, and if someone can hit me with a cluebat, please do,
but until that moment I have to say that my experience with mvn is
completely negative.

All I want to do is:

1 - get build time (like Ant's <tstamp>) in a particular format
2 - and write this value into the manifest of the created jar.

This should not take me 1 week and still be no closer to getting a
result.  Regardless of mavens other qualities (dependency management),
the fact that I cannot find the documentation that I need to solve
this problem, the fact that parts of the maven website are 404, the
fact that I cannot search the mailing list archives (no MARC, just
some nabble.com thing), the fact that the FAQ is missing answers...
the list of documentation problems is endless with maven - I now think
Ant's docs are fantastic.

I'm truly at my wit's end regarding such a simple task, here is what I
currently have in my pom.xml:

        <build>
                <filters>
                        <filter>build.properties</filter>
                </filters>
                <resources>
                        <resource>
                               <!-- required for some reason to get
filtering working -->
                                <directory>src/main/resources</directory>
                                <filtering>true</filtering>
                        </resource>
                </resources>

....


<plugin>
                                <groupId>org.apache.maven.plugins</groupId>
                                <artifactId>maven-antrun-plugin</artifactId>
                                <executions>
                                        <execution>
                                                <phase>process-classes</phase>
                                                <configuration>
                                                        <tasks>
                                                                <tstamp>
                                                                        <!-- 
2006-08-19 15:32:04 -->
                                                                        <format 
property="last.updated" pattern="yyyy-MM-dd hh:mm:ss"/>
                                                                </tstamp>
                                                                <echo 
file="build.properties" message="build.time=${last.updated}"/>
                                                               <!--
sanity check - yep ant works fine, thankfully -->
                                                                <echo 
message="[build.properties] - updated with : ${last.updated}"/>
                                                        </tasks>
                                                </configuration>
                                                <goals>
                                                        <goal>run</goal>
                                                </goals>
                                        </execution>
                                </executions>
                        </plugin>

....

<plugin>
                                <groupId>org.apache.maven.plugins</groupId>
                                <artifactId>maven-jar-plugin</artifactId>
                                <configuration>
                                <archive>
                                        <manifestEntries>
                                                <!-- inserts the correct entry in 
the manifest, but -->
                                                <!-- so far no luck on getting the 
build time -->
                                        <Built-Time>XXX - 
${build.time}</Built-Time>
                                        </manifestEntries>
                                </archive>
                        </configuration>
                                <executions>
                                        <execution>
                                                <goals>
                                                        <goal>jar</goal>
                                                </goals>
                                        </execution>
                                </executions>
                        </plugin>

Basically I want to set a property build.time, and reference it later.
As it seems that you can only specify hard-coded properties in the
pom (why oh why?!), I decided to get around this by getting ant to
spit out the correct value into a props file, then use mavens
filter/resources to pull in this new value and then reference it with
${build.time} in the appropriate place.

Of course it doesn't work due to - what, I don't know, is it the goal,
the phase that it executes in?  Basically the docs don't tell me
enough, and neither does the debug, and google-fu has failed me too.

I know some of the maven devs lurk here (from time to time), if any of
them could shed some light on this.

Do I have to write a <tstamp> plugin (mojo?) for this?

This has to be the second most frustrating piece of software I've
encountered - right after Oracle.
Kev

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

Reply via email to