maven2 建立统一的管理站点
??? 使用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 代码?
- <!--?配置发布站点url?-->??
- ???????????<distributionManagement>??
- ?????????????????<site>??
- ???????????????????<id>website</id>??
- ???????????????????<url>scp://webhost.company.com/www/website</url>??
- ??????????????</site>??
- ???????????</distributionManagement>??
- ???????????<build>??
- ??????????????<plugins>??
- ???????????<!--?配置site?的国际化,默认为en,fr,更改为zh_CN,以及设置编码格式,默认utf-8?-->??
- ??????????????<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">??
- ??<!--?left?banner-->??
- ??<bannerLeft>??
- ????<name>Maven</name>??
- ????<src>http://maven.apache.org/images/apache-maven-project.png</src>??
- ????<href>http://maven.apache.org/</href>??
- ??</bannerLeft>??
- ??<!--?right?banner-->??
- ??<bannerRight>??
- ????<src>http://maven.apache.org/images/maven-small.gif</src>??
- ??</bannerRight>??
- ??<body>??
- ????<!--?默认的link?-->??
- ????<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>??
- ??????????<!--支持jdk?1.5?-->??
- ??????????<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 发布站点 1 楼 lsy 2007-05-10 好帖。多谢楼主介绍的这些plugin