3

私はantプロジェクトを実行しています。1 つのモジュールには、Castor を使用してソース ファイルを生成するために使用される XSD ファイルが含まれています。実行すると、すべてが機能します。

mvn castor:generate package

ただし、コマンドラインで指定しないと、プラグインの生成ゴールを実行することができません。私のプラグイン xml セクションは次のとおりです。

<plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>castor-maven-plugin</artifactId>
      <version>1.0</version>
      <configuration>
      </configuration>
      <executions>
        <execution>
          <phase>generate-sources</phase>
          <goals>
            <goal>generate</goal>
          </goals>
        </execution>
      </executions>
</plugin>

いくつかのフェーズ エントリを試みましたが、うまくいきませんでした。私がここで間違っていることは何か分かりますか? Maven 2 および 3 を使用して、Windows XP および Linux でこれをテストしました。

ありがとうティム

4

1 に答える 1

4

目標はcastor:generateデフォルトでライフサイクル フェーズにバインドされgenerate-sourcesているため、もちろん別のフェーズにバインドする場合を除き、明示的にバインドする必要さえありません。

*.xsdあなたがデフォルトのディレクトリにいると仮定するとsrc/main/castor、次のようにすれば十分です。

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>castor-maven-plugin</artifactId>
    <version>1.0</version>
    <configuration>
      <!--schema>src/main/castor/schema.xsd</schema-->
    </configuration>
    <executions>
      <execution>
        <goals>
          <goal>generate</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

src/main/castor/castorbuilder.propertiesファイルがあると仮定すると、フェーズの後のフェーズを呼び出したときの出力は次のgenerate-sourcesとおりです。

$ mvn package [INFO] プロジェクトをスキャンしています...
[情報]                                                                         
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[情報] 建物 Q4169367/ 1.0-SNAPSHOT
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[情報]
[情報] --- castor-maven-plugin:1.0:generate (デフォルト) @ Q4169367 ---
[INFO] /home/pascal/Projects/stackoverflow/Q4169367/src/main/castor/schema.xsd を処理しています
[情報]
[INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ Q4169367 ---
[情報] 'UTF-8' エンコーディングを使用して、フィルター処理されたリソースをコピーしています。
[INFO] 存在しない resourceDirectory をスキップします /home/pascal/Projects/stackoverflow/Q4169367/src/main/resources
[情報]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ Q4169367 ---
[情報] 3 つのソース ファイルを /home/pascal/Projects/stackoverflow/Q4169367/target/classes にコンパイルしています
...

つまり、プラグインのバージョン 1.0 は期待どおりにトリガーされます (バージョン 2.0 も機能します)。Maven 3.0 でテスト済み。

そうでない場合は、呼び出す目標を再現して言及できるプロジェクトを提供してください。

于 2010-11-13T11:09:06.517 に答える