1

Artifactory からプルされた XML スキーマの JAR をアンパックするフェーズと、XJC クラスを生成するフェーズを含む Maven リリース プラグインを使用するようにプロジェクトをセットアップしました。Maven リリース 2.2.1 を使用しています。

残念ながら、後者のフェーズは前者の前に実行されています。つまり、スキーマの XJC クラスが生成されていません。部分的な POM.XML は次のようになります。

 <plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
      <source>1.6</source>
      <target>1.6</target>
    </configuration>
  </plugin>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
      <execution>
        <id>unpack</id>
        <!-- phase>generate-sources</phase -->
        <goals>
          <goal>unpack</goal>
          <goal>copy</goal>
        </goals>
        <configuration>
          <artifactItems>
            <artifactItem>
              <groupId>ourgroupid</groupId>
              <artifactId>ourschemas</artifactId>
              <version>5.1</version>
              <outputDirectory>${project.basedir}/src/main/webapp/xsd</outputDirectory>
              <excludes>META-INF/</excludes>
              <overWrite>true</overWrite>
            </artifactItem>
          </artifactItems>
        </configuration>
      </execution>
    </executions>
  </plugin>
   <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>maven-buildnumber-plugin</artifactId>
    <version>0.9.6</version>
    <executions>
        <execution>
            <phase>validate</phase>
            <goals>
                <goal>create</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <doCheck>true</doCheck>
        <doUpdate>true</doUpdate>
    </configuration>
  </plugin>
  <plugin>
    <groupId>org.jvnet.jaxb2.maven2</groupId>
    <artifactId>maven-jaxb2-plugin</artifactId>
    <configuration>
        <schemaDirectory>${project.basedir}/src/main/webapp/xsd</schemaDirectory>
        <schemaIncludes>
            <include>*.xsd</include>
            <include>*/*.xsd</include>
        </schemaIncludes>
        <verbose>true</verbose>
        <!-- args>
            <arg>-Djavax.xml.validation.SchemaFactory:http://www.w3.org/2001/XMLSchema=org.apache.xerces.jaxp.validation.XMLSchemaFactory</arg>
        </args-->
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>generate</goal>
            </goals>
        </execution>
    </executions>
</plugin>

グーグルで検索してみましたが、残念ながら何千ものリンクがあり、どれも実際には関連していません。実行される前に実行される b.

ありがとう

4

1 に答える 1

1

実行の順序に関していくつかの問題がありました (例: MNG-3719MNG-2258 ) が、Maven 2.2.1 では問題なく、プラグインは POM にバインドされている場合にリストされているのと同じ順序で実行される必要があります。フェーズ。実際、POM を少し変更すると、次のようになります。

  • <phase>generate-sources</phase>依存関係プラグインのコメントを外しました
  • 要素を追加idしましたexecution
  • 依存関係プラグインに「偽の」依存関係を使用しました

次の出力が得られます。

$ mvn 生成ソース
[情報] プロジェクトをスキャンしています...
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[INFO] 建物 Q3070794
[INFO] タスク セグメント: [generate-sources]
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[INFO] [依存関係:unpack {実行: step1-unpack}]
[情報] 構成されたアーティファクト: c3p0:c3p0:0.9.1.2:jar
[情報] /home/pascal/.m2/repository/c3p0/c3p0/0.9.1.2/c3p0-0.9.1.2.jarto を解凍しています
 /home/pascal/Projects/stackoverflow/Q3070794/src/main/webapp/xsd
with null を含み、除外:META-INF/
[情報] [依存関係:コピー {実行: step1-unpack}]
[情報] 構成されたアーティファクト: c3p0:c3p0:0.9.1.2:jar
[情報] c3p0-0.9.1.2.jar を /home/pascal/Projects/stackoverflow/Q3070794/src/main/webapp/xsd/c3p0-0.9.1.2.jar にコピーしています
[情報] [jaxb2:generate {実行: step2-xjc}]
[情報] 実行を開始しました。
...

dependency:unpackanddependency:copyBEFORE で行われますjaxb2:generate。何かが欠けていない限り、これは期待される結果です。Maven 2.2.1 でテスト済み。

于 2010-06-18T16:27:45.203 に答える