Maven2を使ったサイトの構築について調べたので、まとめておく。
生半な理解なので、間違っているかも…。
(参考:Maven - Guide to creating a site [和訳])
ソースの構成
サイトのソースは以下のような構成になる。
+- src/
+- site/
+- apt/
| +- index.apt
| +- foo.apt
|
+- xdoc/
| +- bar.xml
|
+- fml/
| +- faq.fml
|
+- site.xml
ビルドの出力の構成
これがビルドされると、以下のようなサイトが出来上がる。
+- target/
+- site/
+- css/
+- images/
+- index.html ← index.apt
+- foo.html ← foo.apt
+- bar.html ← bar.xml
+- faq.html ← faq.fml
+- project-info.html
+- ・
・
・
htmlのソースについて
「apt」や「xdoc」は、htmlのソース(なんか妙な言い回しだ…)の記法によって分けられる。
site.xml
Macen1のnavigation.xmlにあたるファイル。
サイト上部のタイトルとか、サイドメニューを定義。
<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="Maven">
<bannerLeft>
<name>Maven</name>
<src>http://maven.apache.org/images/apache-maven-project.png</src><href>http://maven.apache.org/</href>
</bannerLeft>
<bannerRight>
<src>http://maven.apache.org/images/maven-small.gif</src>
</bannerRight><body>
<links>
<item name="Apache" href="http://www.apache.org/" />
<item name="Maven 1.0" href="http://maven.apache.org/"/>
<item name="Maven 2" href="http://maven.apache.org/maven2/"/>
</links><menu name="Maven 2.0">
<item name="Introduction" href="index.html"/>
<item name="Download" href="download.html"/>
<item name="Release Notes" href="release-notes.html" />
<item name="General Information" href="about.html"/>
<item name="For Maven 1.0 Users" href="maven1.html"/><item name="Road Map" href="roadmap.html" />
</menu>${reports}
...
</body>
</project>
レポート
「pom.xmlから生成されたっぽいサマリ」とか「リポジトリの情報」とか「メーリングリストの情報」とか、自動生成される類のコンテンツ。
「project-info.html」が上のメニュー画面で、そこからリンクされる「integration.html」や「issue-tracking.html」は、特に指定しないとデフォルトで以下のレポートが生成される。
- Dependencies Report
- Mailing Lists
- Continous Integration
- Source Repository
- Issue Tracking
- Project Team
- License
デフォルトのレポートを抑止するには「pom.xml」に以下を追加。
<reportSet />まで書かないと抑止されない。ここではまる人は多いみたい(この動作はどうかと思う)
<reporting>
<excludeDefaults>true</excludeDefaults>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<reportSets>
<reportSet />
</reportSets>
</plugin>
</plugins>
</reporting>