使用maven2的另外一个好处,就是有了统一的入口,用于察看项目的进展情况。这主要包括了项目的介绍,成员介绍,以及相关的项目的文档,当然也包括项目的所有进展报表。
下面,通过实例来介绍如何配置maven,来产生项目站点。
首先创建相关的site
mvn archetype:create \
-DarchetypeGroupId=org.apache.maven.archetypes \
-DarchetypeArtifactId=maven-archetype-site \
-DgroupId=com.mycompany.app \
-DartifactId=my-app-site
你会看到如下的目录:
my-app-site
|-- pom.xml
`-- src
`-- site
|-- apt
| |-- format.apt
| `-- index.apt
|-- fml
| `-- faq.fml
|-- fr
| |-- apt
| | |-- format.apt
| | `-- index.apt
| |-- fml
| | `-- faq.fml
| `-- xdoc
| `-- xdoc.xml
|-- xdoc
| `-- xdoc.xml
|-- site.xml
`-- site_fr.xml
当然也可以不用通过此来生成站点,直接在原有的src目录中增加site目录就行。当然,为了简化操作,一般先生成相应的site目录,然后拷贝到相应的src目录中。
修改pom文件
增加以下内容
xml 代码
-
- <distributionManagement>
- <site>
- <id>website</id>
- <url>scp://webhost.company.com/www/website</url>
- </site>
- </distributionManagement>
- <build>
- <plugins>
-
- <plugin>
- <artifactId>maven-site-plugin</artifactId>
- <configuration>
- <locales>zh_CN</locales>
- <outputEncoding>GBK</outputEncoding>
- </configuration>
- </plugin>
- </plugins>
- </build>
在site 目录下,最重要的就是site.xml文件了
site.xml描述了主要的site布局,例子如下:
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>
- <menu ref="reports" />
- ...
- </body>
- </project>
配置站点文件
maven 支持以下的文档:
xdoc格式,使用简单的xml格式
apt格式,like wiki格式的纯文本
fml格式, faq格式
docBook
一般采用apt文件,默认的apt都是iso-8859-1的,如果需要支持中文,需要使用native2ascii命令来转换。
报表:
站点主要的配置,目前不错的报表插件,包括javadoc,pmd,checkstyle,Surefire test,source xref,tag list等。
下面详细介绍这些报表:
javadoc,对于团队内部来说,javadoc是比较重要的,当然前提是能好好的写javadoc。
配置如下:在reporting中增加如下的插件
xml 代码
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- <configuration>
- <links>
- <link>http://java.sun.com/j2se/1.4.2/docs/api</link>
- <link>http://plexus.codehaus.org/ref/1.0-alpha-9/apidocs</link>
- </links>
- <aggregate>true</aggregate>
- </configuration>
- </plugin>
pmd,一个不错的代码检查工具。
xml 代码
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-pmd-plugin</artifactId>
- <configuration>
- <rulesets>
- <ruleset>/rulesets/basic.xml</ruleset>
- <ruleset>/rulesets/imports.xml</ruleset>
- <ruleset>/rulesets/unusedcode.xml</ruleset>
- <ruleset>/rulesets/finalizers.xml</ruleset>
- <ruleset>/rulesets/controversial.xml</ruleset>
- <ruleset>/rulesets/strings.xml</ruleset>
- <ruleset>/rulesets/strictexception.xml</ruleset>
- <ruleset>/rulesets/optimizations.xml</ruleset>
- <ruleset>/rulesets/naming.xml</ruleset>
- </rulesets>
- <linkXref>true</linkXref>
- <sourceEncoding>GBK</sourceEncoding>
- <minimumTokens>100</minimumTokens>
-
- <targetJdk>1.5</targetJdk>
- </configuration>
- </plugin>
checkstyle,主要的代码格式工具,和pmd相比,更注重代码的格式。
xml 代码
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-checkstyle-plugin</artifactId>
- <configuration>
- <configLocation>sun_checks.xml</configLocation>
- </configuration>
- </plugin>
Surefire test,单元测试结果报表
xml 代码
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-report-plugin</artifactId>
- </plugin>
source xref,在网站上直接察看java源代码
xml 代码
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jxr-plugin</artifactId>
- </plugin>
tag list,用于查找在代码中预定义的标签,如todo
xml 代码
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>taglist-maven-plugin</artifactId>
- <configuration>
- <tags>
- <tag>TODO</tag>
- <tag>@todo</tag>
- <tag>FIXME</tag>
- </tags>
- </configuration>
- </plugin>
基本的站点已经成型了,下面就是生成了。
执行mvn site 生成目录,或者直接执行 mvn site-deploy 发布站点
分享到:
相关推荐
Nexus是一款开源的仓库管理工具,可以帮助团队建立私有的Maven仓库。通过Nexus,团队可以集中管理项目依赖,并加速构建过程。 **4.2 使用Maven进行测试** Maven提供了丰富的测试功能,可以自动执行单元测试、集成...
1. **使用Nexus建立私服**:Nexus是一个开源的仓库管理系统,可以帮助企业搭建私有的Maven仓库,解决外部网络不稳定、下载速度慢等问题。 2. **持续集成**:结合Hudson/Jenkins等工具,实现自动化测试和构建,提高...
Apache Maven是一种项目管理和综合工具,主要服务于Java平台的项目,它对项目构建、报告和文档化的过程进行了简化。Maven使用一个名为POM(Project Object Model)的XML文件来管理项目的构建过程。其核心功能包括...
- **一般接口**:Maven提供了一个统一的构建生命周期,支持自动化完成各种任务。 - **基于插件的全局性重用**:Maven的核心功能通过插件实现,这些插件可以被所有项目共享和重用。 - **项目概念模型**:Maven将项目...
- **站点生成**:Maven可以通过站点插件自动生成项目的文档网站。 #### 5. Maven的未来趋势 - **Maven生态系统的扩展**:随着Maven插件数量的增长,Maven的功能不断扩展,支持更多的应用场景。 - **与其他工具的...
接着,书中的内容转向高级话题,包括使用Nexus建立私服、自动化测试、持续集成、构建Web应用、版本管理、灵活构建策略、项目站点生成以及m2eclipse插件的使用等。这些内容不仅适用于希望提高工作效率的开发者,也...
Maven是一款由Apache基金会维护的自动化构建工具,主要用于Java项目的构建、依赖管理和项目信息管理。它通过一种项目对象模型(POM)来管理项目的构建、报告和文档。Maven能够自动下载所需的库,并根据项目的构建逻辑...
2. **依赖管理**:在POM中,开发者可以声明项目所依赖的库,Maven会自动下载这些库并管理它们,避免了版本冲突问题。Maven仓库(如Central Repository)提供了大量的开源组件供开发者使用。 3. **插件系统**:Maven...
Maven的主要优势在于其标准化的构建生命周期和依赖管理机制,这使得开发者可以更加专注于业务逻辑而非构建过程。 **Maven下载和运行** Maven可以从官方网站下载最新的稳定版本。通常下载的是一个压缩包,将其解压...