Defining a preGoal
Since you would like to incorporate the generated SOAP client into your own
project, you need to use the Maven Axis plug-in. When the Axis plug-in
generates source, your build needs to make sure that the source it
generates is included in your project's compilation. To accomplish this,
you need to define a preGoal and
postGoal on the java:compile goal.
How do I do that?
The Axis plug-in generates source files and places them in
maven.axis.generated.dir, which
defaults to target/axis/src.
While you don't want to copy the generated source files to your
project by copying them to src/main/java, you do want these files to
be included in your project's artifact. You need to execute the
axis:compile goal before you
execute the java:compile goal, as
axis:compile will add the source
generated by axis:wsdl2java to the
compilation source path. The following maven.xml file uses a preGoal which executes another goal before
java:compile:
Note
Maven 2 gets rid of preGoal and postGoal. In Maven 2 a build is defined as a series of phases, such as build, compile, and test. Specific goals bind to phases in a project's build lifecycle.
<?xml version="1.0" encoding="UTF-8"?>
<project default="jar"
xmlns:j="jelly:core"
xmlns:ant="jelly:ant"
xmlns:maven="jelly:maven"
<preGoal name="java:compile">
<attainGoal name="axis:compile" />
</preGoal>
</project>Executing the java:compile
goal produces the following output (some file paths have been
truncated):
__ __ | \/ |_ _ _Apache_ _ _ _ ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access