3.10 创建应用程序的Web站点
既然你已经经过了构建,测试,部署Proficio的过程,是时候让你看一下怎样为应用程序创建web站点。对于像Proficio的应用程序来说,建议在顶层目录创建源代码目录来存储资源以此生成web站点,这是默认的情况。如果你看一下,你将会发现如下的结构:
proficio
----proficio-api
----proficio-cli
----proficio-core
----proficio-model
----proficio-stores
--------proficio-store-memory
--------proficio-store-xstream
--------pom.xml
----src
--------site
------------apt
----------------index.apt
------------fml
----------------proficio.fml
------------resources
----------------images
--------------------flow.png
------------site.xml
----pom.xml
生成web站点的所有东西都在src/site目录下。在src/site目录里每一种支持的文档格式都有有一个子目录和站点描述。Maven支持许多文档格式以提供各种各样的需求。
目前为止,良好的支持如下:
XDOC,一个简单的被Apache广泛使用的XML格式
APT(Almost Plain Text),wiki-like格式,允许你快速输出简单的文档结构
FML,FAQ格式,一个简单的管理FAQs的xml格式
简单DocBook格式
限制支持:
Twiki格式,一种流行的Wiki标记格式
汇合(Confluence)格式,另一种流行的Wiki标记格式
DocBook格式
在后面的章节我们会看一下几个支持良好的格式,但是你应该熟悉站点描述,使用如下配置
配置banner外观
为站点配置皮肤
配置出版日期
配置banner下的链接
配置放置在<head/>元素中的额外信息
配置在导航栏生成的菜单
配置项目报告外观
如果你看一下Proficio应用程序的src/site目录和其中的站点描述,你将看到如下:
<project name="Proficio">
<bannerLeft>
<name>Proficio</name>
<href>http://maven.apache.org/</href>
</bannerLeft>
<bannerRight>
<name>Proficio</name>
<src>http://maven.apache.org/images/apache-maven project.png</src>
</bannerRight>
<skin>
<groupId>org.apache.maven.skins</groupId>
<artifactId>maven-default-skin</artifactId>
<version>1.0-SNAPSHOT</version>
</skin>
<publishDate format="dd MMM yyyy" />
<body>
<links>
<item name="Apache" href="http://www.apache.org/"/>
<item name="Maven" href="http://maven.apache.org/"/>
<item name="Continuum" href="http://maven.apache.org/continuum"/>
</links>
<head><meta name="faq" content="proficio"/></head>
<menu name="Quick Links">
<item name="Features" href="/maven-features.html"/>
</menu>
<menu name="About Proficio">
<item name="What is Proficio?" href="/what-is-maven.html"/>
</menu>
${reports}
</body>
</project>
这是一个相当标准的描述,你应该知道站点描述中每个元素的意思,如下:
站点描述 元素描述
bannerLeft和bannerRight 这个元素有一个name,href和可选的用于images的src子元素
skin 和dependency的机制相似,用来配置站点皮肤
publishDate 用SimpleDateFormat格式化日期
body/links 定义在banner下的链接,每一项有一个name和href属性
body/head 允许你在页面的head元素中插入任何东西。你可能会像加入metadata或者用来激活Google统计功能的script片段
body/menu 控制在导航栏的菜单,你可以有任意多个菜单,每个菜单可以有任意多个连接
body/${reports} 包含的${reports}引用控制是否显示站点报告。你可能会排除${reports}引用来形成一个干净的站点文档
Maven的一个受欢迎的特征就是可以轻易的生成标准报告。你只要简单的在你的descriptor中包括${reports},站点报告就会自动显示。标准的项目信息报告由如下部分组成:
依赖报告(Dependencies Report)
邮件列表报告(Mailing Lists Report)
连续累计报告(Continuous Integration Report)
源码库报告(Source Repository Report)
问题跟踪(Issue Tracking Report)
项目团队报告(Project Team Report)
许可(License)
虽然标准报告是有用的,但是你可能想要自定义项目报告。报告创建和展示由POM中的build/reports元素控制。你可能想要关于报告更多的选择,要这样做你需要列出每个你想包括的站点生成部分的报告,你可以像下面这样配置插件:
<project>
[...]
<reporting>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<reportSets>
<reportSet>
<reports>
<report>dependencies</report>
<report>project-team</report>
<report>mailing-list</report>
<report>cim</report>
<!--
Issue tracking report will be omitted
<report>issue-tracking</report>
-->
<report>license</report>
<report>scm</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
[...]
</reporting>
[...]
</project>
配好了配置文件以后你就可以生成站点了,命令如下:
mvn site
究竟效果如何自己看一下生成的目录结构吧
如果你有想把pdf或图片等资源引入到你的文档中,你可以使用src/site/resources来存储他们,当站点生成时src/site/resources中的内容将被处理。src/site/resources下的任何文件或目录都会被包含在输出中,记住这个规则你可以为你的站点添加任意资源。
未完待续