Search code examples
javajaxb2maven-jaxb2-pluginjaxb2-maven-plugin

unable to generate jaxb .xsd to java classes in goal phase


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>

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