-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hello everyone,

First of all, I cannot overstate the beneficial effect that Maven has had on the
development process at my organization.  To the devs: thanks for the great tool!

I have a pom that specifies two executions of the compiler plugin, with 
different phases
specified and different configs, but they're not both running.  (See pom 
excerpt below.)
Is that expected?  Can I configure multiple executions of the compiler plugin 
with
different configurations?  It seems like no - [1], [2], [3] - but I hope 
someone has an
definitive answer.

Here's some background on my problem, which I admit is fairly obscure. 
Basically, what I
need to do is:

1 Compile class A in package org.myorg, which is annotated with @WebService

2 Run JAXWS's wsgen (via maven-jaxws-plugin) to make a WSDL from the compiled 
A.class

3 Run JAXWS's wsimport (via maven-jaxws-plugin) to make client-side bindings 
from the
just-generated WSDL

4 Compile non-generated classes that reference the just-generated client 
bindings. These
live in separate sub-packages - org.myorg.x, org.myorg.y, etc - and would have 
failed if
compiled during step 1 because they reference code generated in step 3.

I've included (what I hope are) the relevant sections of my pom below.

PS: Do I need to do things this way?  Unfortunately, I think so.  Class 
org.myorg.A is a
web service that needs to invoke other org.myorg.A web services arranged in a 
tree or mesh
topology.  I've tried to break out the bindings, the SEI (A), and the classes 
that
abstract the connection between As using the client bindings into submodules, 
but I've
only managed to introduce circular dependencies.

In the past, I've dealt with this sort of chicken-and-egg problem by generating 
WSDLs and
code and then checking them into source control.  This feels bad, and makes 
updates if the
interface of the SEI changes a hassle.  I'd much rather define a simple SEI 
annotated with
@WebService and have the low-level stuff (WSDLs, client bindings) generated 
from that.

[1] http://weblogs.java.net/blog/ss141213/archive/2007/11/my_maven_experi.html
[2]
http://mail-archives.apache.org/mod_mbox/maven-users/200711.mbox/[EMAIL 
PROTECTED]
[3]
http://mail-archives.apache.org/mod_mbox/maven-users/200609.mbox/[EMAIL 
PROTECTED]

| <plugin>
|       <artifactId>maven-compiler-plugin</artifactId>
|       <executions>
|               <execution>
|                       <id>jaxws-pre-compilation-hack</id>
|                       <!-- Hack to specify order of plugin application -->
|                       <phase>process-sources</phase>
|                       <configuration>
|                               <source>1.5</source>
|                               <target>1.5</target>
|                               <includes>
|                                       
<include>${source.dir}/org/myorg</include>
|                               </includes>
|                               <excludes>
|                                       
<exclude>${source.dir}/org/myorg/x</exclude>
|                                       
<exclude>${source.dir}/org/myorg/y</exclude>
|                               </excludes>
|                               <goals>
|                                       <goal>compile</goal>
|                               </goals>
|                       </configuration>
|               </execution>
|               <execution>
|                       <id>normal-compilation</id>
|                       <!-- Hack to specify order of plugin application -->
|                       <phase>compile</phase>
|                       <configuration>
|                               <source>1.5</source>
|                               <target>1.5</target>
|                       </configuration>
|                       <goals>
|                               <goal>compile</goal>
|                       </goals>
|               </execution>
|       </executions>
| </plugin>
| <plugin>
|       <groupId>org.codehaus.mojo</groupId>
|       <artifactId>jaxws-maven-plugin</artifactId>
|       <executions>
|               <execution>
|                       <id>make-wsdl</id>
|                       <!-- Hack to specify order goals are run in -->
|               <phase>generate-resources</phase>
|               <goals>
|                       <goal>wsgen</goal>
|               </goals>
|               <configuration>
|                       <sei>org.myorg.A</sei>
|                       ...
|               </configuration>
|       </execution>
|       <execution>
|               <id>make-client-bindings</id>
|               <!-- Hack to specify order goals are run in -->
|               <phase>process-resources</phase>
|               <goals>
|                       <goal>wsimport</goal>
|               </goals>
|               <configuration>
|                       ...
|               </configuration>
|       </execution>
|       </executions>
|       ...
| </plugin>



-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFIM3FkrZoE3ArapxERCMccAKDlPjEgU1qgJHl/HPohB/v11qLSGACgo4PY
/TE9PQTQfVgGzt1zsee9gGo=
=5LNh
-----END PGP SIGNATURE-----


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

Reply via email to