0

親 POM ファイルとサブモジュールを使用して Maven サイトを構築することについて質問があります。メニューが親 POM から継承されている場合、継承されたモジュール サイトで相対リンクを取得するのに問題があります。

次のようなプロジェクト構造があります。

modules/pom.xml
    parent/
    module1/
    module2/
    etc.

したがって、この構成では、次のようなサイトになります。

base-site/ 
    module1/
    module2/

modules/pom.xml からのリアクター ビルドは最上位の Web サイトを生成し、各モジュールにはサイトも生成されます。

各モジュールは、この site.xml ファイルを親から継承します (例):

<project>
    <body>
        <menu name="Module" inherit="top">
            <item name="Summary" href="./project-summary.html"/>
        </menu>
        <menu name="Module" ref="reports" inherit="bottom" />
    </body>
</project>

標準の Maven 生成「レポート」を参照するメニューは正常に機能します。

しかし、project-summary.html への href は、子サイトではなくトップ サイトを指すことになります。

継承されたメニューの構築に関連する Stackoverflow に関する同様の問題をいくつか見てきましたが、これらのリンクを親サイトではなく子サイトのコンテンツを指すようにする方法に関する正確な情報は見つかりませんでした。ここでメニューの継承が何を達成することになっているのか、私が誤解している可能性があります。

基本的に、子サイトで生成されたコンテンツへのメニュー リンクを次のようにしたいと考えています。

<item name="Summary" href="./module1/project-summary.html"/>

さて、次のようなものを使用して、親POMからこれを達成するためにフィルタリングを使用してみようと思いました:

<item name="Summary" href="./${project.artifactId}/project-summary.html"/>

ただし、子プロジェクトの名前の代わりに親 POM の名前がここで置換されるため、これは機能しません。

この場合、モジュールごとにカスタムの site.xml を配置する必要があるかもしれませんが、15 個ほどあるため、これは避けたいと思います。それらは、約 8 または 9 個の異なる (相対) メニュー リンク。ほとんどのプロジェクトでは、独自の site.xml ファイルは必要ありません。したがって、理想的には、いくつかの追加メニューを追加する子 POM を使用して、すべてのデフォルトを親に定義してもらいたいと考えています。

これを行うために、「レポート」参照とそのデフォルト レイアウトを使用することに固執していますか? または、これらを親の site.xml ファイルのメニュー項目として明示的にリストし、それらの参照を何らかの形で機能させることはできますか?

それが明確であることを願っています。ありがとう。

4

1 に答える 1