无法在目标阶段生成jaxb .xsd到java类

时间:2013-04-25 18:12:39

标签: java jaxb2 maven-jaxb2-plugin jaxb2-maven-plugin

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>

2 个答案:

答案 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

它工作得很棒。