質問

Mavenリリースプラグインを使用するプロジェクトが設定されています。これには、Artifactoryから引き出されたXMLスキーマの瓶を解き放つフェーズとXJCクラスを生成するフェーズを含むプロジェクトが設定されています。私たちは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。

ありがとう

役に立ちましたか?

解決

実行の注文にはいくつかの問題がありました(例: MNG-3719, MNG-2258)しかし、それはMaven 2.2.1で大丈夫なはずです プラグインは、同じフェーズにバインドされているときにPOMにリストされているのと同じ順序で実行する必要があります. 。そして確かに、あなたのPOMがわずかに変更された状態で:

  • 私はそれを知らなかった <phase>generate-sources</phase> 依存関係プラグインの
  • 追加した idexecution 要素
  • 依存関係プラグインに「偽の」依存関係を使用しました

次の出力を取得します。

$ mvn generate-sources 
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Q3070794
[INFO]    task-segment: [generate-sources]
[INFO] ------------------------------------------------------------------------
[INFO] [dependency:unpack {execution: step1-unpack}]
[INFO] Configured Artifact: c3p0:c3p0:0.9.1.2:jar
[INFO] Unpacking /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 Includes null and excludes:META-INF/
[INFO] [dependency:copy {execution: step1-unpack}]
[INFO] Configured Artifact: c3p0:c3p0:0.9.1.2:jar
[INFO] Copying c3p0-0.9.1.2.jar to /home/pascal/Projects/stackoverflow/Q3070794/src/main/webapp/xsd/c3p0-0.9.1.2.jar
[INFO] [jaxb2:generate {execution: step2-xjc}]
[INFO] Started execution.
...

dependency:unpackdependency:copy 終わらせる jaxb2:generate. 。私が何かを逃さない限り、これは期待される結果です。 Maven 2.2.1でテストしました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top