If you have something that works in Ant, and you're happy with it,
then I wouldn't worry too much about doing it in the Maven way.

If you really want to make it work "the Maven way", I think it might
be easiest if you just write a plugin.

Wayne

On 8/23/07, Dave Feltenberger <[EMAIL PROTECTED]> wrote:
> Hi -
>
> I'm working on a project that has the need to do the following, and I can't
> think of an elegant way of achieving it using Maven without having to call
> out to Ant:
>
> We have several clients, each of which get a customized Java Web Start /
> .jnlp file.  There are only 5 clients now, but the number could explode very
> quickly, so automation is key.  The jnlp files are almost identical, with
> only a few things changed.  In the current Ant build system -- which I'm
> replacing with Maven2 -- one template.jnlp file is copied n times, one for
> each client.  Each client has its own properties file that is used to filter
> the jnlp.  So basically we start with:
>
> template.jnlp
> client1.properties
> client2.properties
> client3.properties
>
> And end up with:
> client1.jnlp (with the filtered properties in it)
> client2.jnlp (ditto)
> client3.jnlp (ditto)
> etc.
>
> It's not practical to create a new POM/artifact for each new client, since
> there may be so many so soon.  The only thing I know how to do is to add
> multiple properties files and multiple files to filter, but that's done at
> more of a global level - the filter attributes in the jnlp files will be the
> same since they'll come from the same template, so I need to do them one
> .properties and .jnlp at a time.
>
> This is what I have so far that works for only one client at a time (copy
> the template to a new file in generate-resources phase, then do the
> filtering during the regular life cycle).  I'm considering changing this to
> do more work in the Ant taks - looping through a list, creating each .jnlp,
> filtering, etc. -- but I feel like I'm breaking some kind of best practice
> or re-creating a wheel someone on the list may have already created by going
> down that path.
>
> ...
>     <build>
>         <filters>
>             <filter>src/main/filters/${client.filter}.properties</filter>
>         </filters>
>         <resources>
>             <resource>
>                 <directory>${temp.resources.dir}</directory>
>                 <includes>
>                     <include>${client.filter}.jnlp</include>
>                 </includes>
>                 <filtering>true</filtering>
>             </resource>
>         </resources>
>      </build>
> ...
>         <plugins>
>             <plugin>
>                 <inherited>true</inherited>
>                 <artifactId>maven-antrun-plugin</artifactId>
>                 <executions>
>                     <execution>
>                         <phase>generate-resources</phase>
>                         <configuration>
>                             <tasks>
>                                 <mkdir dir="${temp.resources.dir}" />
>                                 <copy file="${jnlp.template.file}"
> tofile="${temp.resources.dir}/${client.filter}.jnlp" />
>                             </tasks>
>                         </configuration>
>                         <goals>
>                             <goal>run</goal>
>                         </goals>
>                     </execution>
>                 </executions>
>             </plugin>
>        </plugins>
>
> Any help would be greatly appreciated!
>
> Thanks.
>
> Dave
>

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

Reply via email to