Example:
org.jvnet.jaxb2.maven2
I had to specify different generateDirectory (without this, the plugin was considering that files were up to date and wasn't generating anything during the second execution). And I recommend to follow the target/generated-sources/
convention for generated sources so that they will be imported in your favorite IDE automatically. I also recommend to declare several execution
instead of declaring the plugin twice (and to move the configuration
inside each execution
element):
org.jvnet.jaxb2.maven2
maven-jaxb2-plugin
0.7.1
schema1-generate
generate
src/main/resources/dir1
shiporder.xsd
com.stackoverflow.package1
${project.build.directory}/generated-sources/xjc1
schema2-generate
generate
src/main/resources/dir2
books.xsd
com.stackoverflow.package2
${project.build.directory}/generated-sources/xjc2
With this setup, I get the following result after a mvn clean compile
$ tree target/ target/ ├── classes │ ├── com │ │ └── stackoverflow │ │ ├── App.class │ │ ├── package1 │ │ │ ├── ObjectFactory.class │ │ │ ├── Shiporder.class │ │ │ ├── Shiporder$Item.class │ │ │ └── Shiporder$Shipto.class │ │ └── package2 │ │ ├── BookForm.class │ │ ├── BooksForm.class │ │ ├── ObjectFactory.class │ │ └── package-info.class │ ├── dir1 │ │ └── shiporder.xsd │ └── dir2 │ └── books.xsd └── generated-sources ├── xjc │ └── META-INF │ └── sun-jaxb.episode ├── xjc1 │ └── com │ └── stackoverflow │ └── package1 │ ├── ObjectFactory.java │ └── Shiporder.java └── xjc2 └── com └── stackoverflow └── package2 ├── BookForm.java ├── BooksForm.java ├── ObjectFactory.java └── package-info.java
Which seems to be the expected result.