0

Java - jaxb - Maven プラグイン

私はMavenベースのWebアプリケーションを持っています。pomには、jaxb .xsdをJavaクラスに生成する次のプラグインがあります。

クリーン、コンパイル、パッケージ xsd クラスを実行すると、生成されません。mvn jaxb2:generate を手動で実行すると、generate-source フォルダーに xsd クラスが生成されますが、war にはパックされません。

「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

generate-sources はパッケージ化の目的の一部ではないため、mvn clean compile パッケージを実行しても XSD クラスは生成されません。WAR パッケージのデフォルトのバインディングは、process-resources compile process-test-resources test-compile
test package install deployです。

プロファイルをラップして、そのプロファイルで mvn ビルドを実行できます。プロファイルを使用するもう 1 つの理由は、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 に答える