0

Java - jaxb - maven 插件

我有基于 maven 的 Web 应用程序,在 pom 中我有以下插件,它应该生成 jaxb .xsd 到 java 类。

当我执行清理、编译时,不会生成打包 xsd 类。当我手动执行 mvn jaxb2:generate 时,它​​会在 generate-source 文件夹中生成 xsd 类,但不会打包在战争中。

如何在不手动执行“mvn jaxb2:generate”的情况下使其生成 xsd 类并使其成为战争的一部分?谢谢我提前。

<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>
4

2 回答 2

1

当您运行 mvn clean compile package 时,它​​不会生成 XSD 类,因为 generate-sources 不是打包目标的一部分。WAR 打包的默认绑定是 process-resources compile process-test-resources test-compile
test package install deploy

您可以将其包装在配置文件中,并使用该配置文件运行 mvn 构建 使用配置文件的另一个原因是您只能在需要生成 java 类时使用此配置文件,其他时候您可以只运行常规构建。

格式是

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

mvn -P generateFromSchemas

于 2013-04-25T18:46:25.577 回答
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

效果很棒。

于 2013-04-25T19:10:14.473 回答