Am Freitag, den 30.11.2007, 11:17 +0800 schrieb James Mao:
Glen,

You have to do couple things in order to run codegen:wsdl2java under the folder which contains the pom.xml You can take a look at the /tools/jdee which is a maven plugin i did for generating the emacs jdee project

How it works?

0. Look at the /tools/jdee/pom.xml, the group id is org.apache.cxf.maven, the artifact id is maven-jdee-plugin
1. mvn install  (install the plugin)
2. Update the ~/.m2/settings.xml, add

<pluginGroups>
   <pluginGroup>org.apache.cxf.maven</pluginGroup>
</pluginGroups>


<snip/>

Oh I see...I looked this up, pluginGroups are described here:
http://maven.apache.org/settings.html#Simple_Values

Thanks for explaining this process for me.


The wsdl2java Mojo is a little bit different, the groupid is org.apache.cxf, 
you you have to add it into the ~/.m2/settings.xml
<pluginGroups>
   <pluginGroup>org.apache.cxf</pluginGroup>
</pluginGroups>


For some reason Maven seems to be able to detect the groupId for the
cxf-codegen-plugin even if I don't do this.  Adding this entry in
settings.xml or omitting it made no difference.


And you have to change the artifact id of the codegen plugin from the 
cxf-codegen-plugin to maven-codegen-plugin

Actually, I just found out, you don't have to rename the plugin artifact
id if you state the first word:

mvn cxf-codegen:wsdl2java will work.

(It is just that if you omit the first word, it assumes it is "maven",
and hence things wouldn't work in our case here.)

Right, If you don't change the cxf-codegen-plugin to maven-codegen-plugin, then you have to use
mvn cxf-codegen:wsdl2java,

If you changed the artifact id to maven-codegen-plugin, then , you are allowed to do this mvn codegen:wsdl2java, and in this case, you have to put the groupid into the ~/.m2/settings.xml
That's how it works

mvn codegen:wsdl2java looks neat, but mvn cxf-codegen:wsdl2java is easier, I always like to pick up the easier approach :)

Thanks for the information here.

And now, you can run
mvn codegen:wsdl2java under the /testutils but that's not working, because 
wsdl2java will ask for the wsdlOption arguments etc.


Yes, I got that error and just made a JIRA entry for it.  "mvn
generate-sources" runs wsdl2java fine but not the "mvn
cxf-codegen:wsdl2java" because of this error.


The best solution i have is to modify the wsdl2java plugin using the CoC 
approach, in this way you don't have to put all the wsdls in your pom


The solution is very similar to the function I added to fAnt[1]

[1]http://maomaode.bokeland.com/blog/3/9741/2007/11/15/301276


Hmmm...for CoC perhaps you would want to place the wsdls in src/wsdl
instead of src/main/resources/wsdl -- IIRC the latter is normally for
files that get copied to the classpath, and FWIW src/wsdl is Sun's
default[2]

Some wsdls are required to copy to the classpath, I guess it's required by the tests.

The directory I recommend is actually two

/src/main/resources/wsdl
/src/test/resources/wsdl

But I can add this dir as well, if the plugin detect there's wsdl under the
/src/wsdl

But I personally would like keep the /src as clean as just keeping only 'main' and 'test' two folders
I'm not sure Maven has such rules for placing the files?

Regards,
James

Thanks,
Glen

[2]
https://jax-ws-commons.dev.java.net/jaxws-maven-plugin/wsimport-mojo.html#wsdlDirectory

Hope this helps :)

Regards,
James



Hello,

I have another CXF/Maven[1] newbie question--to run wsdl2java using
Maven, what is the plugin prefix for wsdl2java, i.e.,
"mvn ????:wsdl2java" at the command line?  Currently I'm using "mvn
generate-sources" instead which works fine, but would like to see if I
can get it to work using the actual goal name.

Thanks,
Glen

[1] http://cwiki.apache.org/confluence/display/CXF20DOC/Maven
+Integration+and+Plugin





Reply via email to