Question

Java - jaxb - maven plugin

I have maven based web application, in pom i have following plugin which should generate jaxb .xsd to java classes.

When i execute clean, compile, package xsd classes do not gets generate. When i execute mvn jaxb2:generate manually it does generate xsd classes in generate-source folder but does not pack in war.

How can i make it generate xsd classes without manually executing "mvn jaxb2:generate" and make it part of the war ? thanks i Advance.

<plugin>
          <groupId>org.jvnet.jaxb2.maven2</groupId>
          <artifactId>maven-jaxb2-plugin</artifactId>
          <version>0.8.3</version>
          <executions>
            <execution>
              <phase>generate-sources</phase>
              <goals>
                <goal>generate</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <schemaDirectory>src/main/wsdl</schemaDirectory>
          </configuration>
        </plugin>
Was it helpful?

Solution

It will not generate the XSD classes when you run mvn clean compile package, as generate-sources is not part of the packaging goal. The default bindings for WAR packaging would be process-resources compile process-test-resources test-compile
test package install deploy

You can wrap it around a profile, and run the mvn build with that profile The other reason being to use profile is you can use this profile only whenever you need to generate the java classes, othertimes you can just run the regular build.

The format is

<profiles>
   <profile>
     <id>generateFromSchemas</id>
        <plugin>
           ......
        </plugin>
   </profile>
 <profiles>

mvn -P generateFromSchemas

OTHER TIPS

I slightly updated my plugin as following

<plugin>
      <groupId>org.jvnet.jaxb2.maven2</groupId>
      <artifactId>maven-jaxb2-plugin</artifactId>
      <version>0.8.3</version>
      <executions>
        <execution>
          <phase>generate-sources</phase>
          <goals>
            <goal>generate</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <generatePackage>com.equilibriums.samplespringws</generatePackage>
        <schemaDirectory>src/main/wsdl</schemaDirectory>
      </configuration>
    </plugin>

and following is the maven command

mvn jaxb2:generate compile package

and it worked awesome.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top