4

マルチモジュール プロジェクトがあり、JXR maven プラグインを使用してソース コードの HTML バージョンをプロジェクトのサイトにデプロイしたいと考えています。

問題は、JXR プラグインが正常に動作し、モジュールごとに XREF フォルダーが適切に生成されることですが、mvn site:stage コマンドを使用してすべてのプロジェクトのサイト コンテンツを取得し、すべてのリンクを適切に生成することです。 XREF フォルダを取得しません。

これは、JXR プラグインが構成されている私の POM ファイルの抜粋です。

<plugin>
   <groupId>org.codehaus.mojo</groupId>
   <artifactId>jxr-maven-plugin</artifactId>
   <configuration>
      <aggregate>true</aggregate>
   </configuration>
</plugin>

サイトの作成とステージングに使用するコマンドは次のとおりです。

mvn site site:stage

皆さん、何か考えはありますか?

前もって感謝します。

r.

4

1 に答える 1

4

これが関連しているかどうかはわかりませんが、あなたのコマンドはサイトを2回実行しています.mvnサイトはサイトを生成し、site:stageもサイトを実行します.おそらくこれが問題を引き起こしているのでしょう.

JXRのドキュメントを見ると、 site:site の目標のみが言及されています。 site:stage の目標が拡張されているため、それが適切に実行されない理由がわかりません。siteゴールを実行し、出力を別のディレクトリにコピーし、site:stageゴールを実行して出力を比較すると、問題に対する洞察が得られる場合があります。

更新: 自分でこれを試してみたところ、相互参照が正しく管理された状態で、xref が c:\test\stage に含まれて適切に集約されました。私が使用した構成を含めました。

私の親 pom では、次のようにサイト構成を定義しました。

<build>
  <plugins>
    <plugin>
      <artifactId>maven-site-plugin</artifactId>
      <executions>
        <execution>
          <phase>prepare-package</phase>
          <goals>
            <goal>stage</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <stagingDirectory>c:\test\stage</stagingDirectory>
      </configuration>
    </plugin>
  </plugins>
</build>

distributionManagement セクションは、サイト情報を使用して構成されています (上記の stagingDirectory を設定したため、実際には必要ありませんが、それなしでは目標は実行されません)。

<distributionManagement>  
  <site>
    <id>mojo.website</id>
    <name>Mojo Website</name>
    <url>scp://test/</url>
  </site>
</distributionManagement>

親 pom の JXR 構成は次のとおりです。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jxr-plugin</artifactId>
  <reportSets>
    <reportSet>
      <id>src-xref</id>
      <reports>
        <report>jxr</report>
      </reports>
    </reportSet>
    <reportSet>
      <id>test-xref</id>
      <reports>
        <report>test-jxr</report>
      </reports>
    </reportSet>
  </reportSets>
  <configuration>
    <aggregate>true</aggregate>
  </configuration>
</plugin>

コマンドラインの実行はmvn clean site:stageでした

編集: コメントによると、わずかに異なるセマンティクスを持つcodehaus jxr プラグインがあります。org.codehaus.mojo バージョンではなく、必ず org.apache.maven.plugins バージョンを使用してください。

于 2009-07-31T15:43:16.607 に答える