Java - jaxb - maven插件
我有基于maven的Web应用程序,在pom中我有以下插件,它应该生成jaxb .xsd到java类。
当我执行clean,compile时,包xsd类不会生成。当我执行mvn jaxb2:手动生成时,它会在generate-source文件夹中生成xsd类,但不会在战争中打包。
如何让它生成xsd类而无需手动执行“mvn jaxb2:generate”并使其成为战争的一部分?谢谢我的进步。
<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>
答案 0 :(得分:1)
运行mvn clean compile包时不会生成XSD类,因为generate-sources不是打包目标的一部分。
WAR包装的默认绑定是
流程资源
编
流程测试资源
测试编译
测试
包
安装
部署
您可以将其包装在配置文件中,然后使用该配置文件运行mvn构建 使用配置文件的另一个原因是,只有在需要生成java类时才能使用此配置文件,其他情况下您可以运行常规版本。
格式为
<profiles>
<profile>
<id>generateFromSchemas</id>
<plugin>
......
</plugin>
</profile>
<profiles>
mvn -P generateFromSchemas
答案 1 :(得分:0)
我稍微更新了我的插件,如下所示
<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>
以下是maven命令
mvn jaxb2:generate compile package
它工作得很棒。