タイトルとは少しずれてきましたが、WSDLからjavaソースを生成するというレアなタスクをmavenで対応できたのでメモしておきます。
もともとのプロジェクトではantビルドでexecタスクからバッチファイルを実行していました。
<target name="wsdl_to_java">
<exec dir="./jaxb" executable="cmd">
<arg line="/c wsdlToJava.bat ../${SRC_DIR} ../${WSDL_FILE}"/>
</exec>
</target>
set LIB_HOME=.
set JAXB_LIBS=%LIB_HOME%\jaxb-api.jar
set JAXB_LIBS=%JAXB_LIBS%;%LIB_HOME%\jaxb-xjc.jar
set JAXB_LIBS=%JAXB_LIBS%;%LIB_HOME%\jaxb-impl.jar
java -Dfile.encoding=UTF-8 -cp %JAXB_LIBS% com.sun.tools.xjc.XJCFacade -d %1 %2 -b custom-binding.xml -wsdl -target 2.1
こんな感じです。
既にgroovyをコンパイルするために maven-antrun-plugin プラグインを導入済ですので、ここへタスクを追加します。
生成されるjavaソースはgroovy側から参照するので、groovyのコンパイルより前にタスクを追加します。
バッチファイルにはなっていますが、Ant:java プログラムなので javaタスクを使用します。実行に必要なjarは諸般の理由で java6フォルダからプロジェクトの/toolsフォルダへコピーしてあります。
<tasks>
<java classname="com.sun.tools.xjc.XJCFacade"
classpath="${basedir}/tools/jaxb-api.jar;
${basedir}/tools/jaxb-xjc.jar;
${basedir}/tools/jaxb-impl.jar;" >
<sysproperty key="file.encoding" value="UTF-8" />
<arg value="-d" />
<arg value="${basedir}/src/main/java"/>
<arg value="${basedir}/src/main/WSDL/xxxx/xxxx_External.wsdl"/>
<arg value="-b"/>
<arg value="${basedir}/tools/custom-binding.xml"/>
<arg value="-wsdl"/>
<arg value="-target"/>
<arg value="2.1"/>
</java>
<mkdir dir="${basedir}/src/main/groovy" />
<taskdef name="groovyc"
classname="org.codehaus.groovy.ant.Groovyc">
続く
/src/main/java へ生成されたjavaソースが出力されます。コンパイルについては記述の必要はなかったです。
参考にしたサイト
Ant「javaタスク」メモ(Hishidama’s ant-java Memo)
https://www.ne.jp/asahi/hishidama/home/tech/ant/tag/java.html