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下的任何文件或目录都会被包含在输出中,记住这个规则你可以为你的站点添加任意资源。
未完待续
分享到:
相关推荐
《Better Builds With Maven》是一本针对Maven 2.0的实用指南,由Maven核心团队成员John Casey、Vincent Massol、Brett Porter、Carlos Sanchez以及Jason Van Zyl共同撰写。本书深入浅出地介绍了如何利用Maven 2.0来...
《Better Builds With Maven2》是一本专注于Maven2构建工具的...通过学习《Better Builds With Maven2》和实践提供的源代码,开发者可以熟练掌握Maven2的使用,从而提高开发效率,确保项目的构建过程更加稳定和高效。
本资源"Better builds with Maven2"旨在深入探讨Maven2的使用,帮助开发者提高构建效率,优化项目流程。 首先,Maven2的核心概念是基于项目对象模型(Project Object Model,POM)。POM是一个XML文件,包含了项目的...
通过阅读《Better Builds with Maven》这本书,你可以学习到如何设置Maven环境,编写POM文件,理解生命周期和构建目标,以及如何有效地利用Maven解决项目中的各种问题。此外,书中还可能涵盖了一些高级主题,如...
通过学习《BetterBuildsWithMaven》,初学者不仅能了解 Maven 的基本操作,还能深入理解 Maven 如何简化软件项目的构建和管理,提高开发效率。同时,书中可能还涉及到了 Maven 的最佳实践、问题排查以及与其他工具...
《Better Builds with Maven》这本书是由Maven的核心开发团队成员John Casey、Vincent Massol、Brett Porter、Carlos Sanchez和Jason van Zyl共同编写的,旨在帮助读者更好地理解和使用Maven2。 #### 二、Maven2的...
总结,"Better builds with Maven2源代码"提供了深入学习Maven2的机会,通过对源代码的研究,开发者可以提升对Maven2的理解,从而更高效地管理和构建项目。通过掌握Maven2的精髓,我们可以创建出更加稳定、可维护的...
《Better Builds with Maven》是一本针对Maven 2.0的实用指南,由John Casey、Vincent Massol、Brett Porter、Carlos Sanchez和Jason van Zyl等经验丰富的开发者共同编写。本书旨在帮助开发人员更好地理解和掌握...
3. **项目信息管理**:Maven支持文档生成、报告和站点创建等功能,有助于项目团队更好地共享信息和文档。 4. **插件系统**:Maven拥有一个丰富的插件生态系统,涵盖了从单元测试到打包部署等多种功能。开发者可以...
这本书是Maven的另一经典之作,英文原版为“Better Builds with Maven”。作者详细阐述了如何使用Maven提高软件构建的质量和效率,强调了Maven在自动化测试、持续集成和项目治理中的作用。书中的案例和实践建议对...
提供的文件 `betterbuildswithmaven-2008.pdf` 可能是一本关于 Maven2 的指南,它可能详细介绍了如何使用 Maven 提升构建效率,包括最佳实践、高级配置和插件的使用方法。这本书可能会涵盖如何解决依赖冲突、优化...
在《Better builds with Maven2.pdf》这本书中,你将更详细地了解到如何配置POM,如何使用Maven的命令行工具,如何解决依赖冲突,以及如何自定义构建流程等实用技巧。通过学习,无论是新手还是经验丰富的开发者,都...
- Better Builds with Maven:一本免费电子书,提供更深入的Maven使用指南。 2. Maven与Ant的区别: - Maven采用声明式配置,避免了Ant中的复杂脚本编写。 - Maven提供了一种标准的构建生命周期,包括清理、编译...