读书人

maven2 建立一致的管理站点

发布时间: 2012-10-28 09:54:44 作者: rapoo

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 代码?

  1. <!--?配置发布站点url?-->??
  2. ???????????<distributionManagement>??
  3. ?????????????????<site>??
  4. ???????????????????<id>website</id>??
  5. ???????????????????<url>scp://webhost.company.com/www/website</url>??
  6. ??????????????</site>??
  7. ???????????</distributionManagement>??
  8. ???????????<build>??
  9. ??????????????<plugins>??
  10. ???????????<!--?配置site?的国际化,默认为en,fr,更改为zh_CN,以及设置编码格式,默认utf-8?-->??
  11. ??????????????<plugin>??
  12. ?????????????????<artifactId>maven-site-plugin</artifactId>??
  13. ????????????????<configuration>??
  14. ????????????????????<locales>zh_CN</locales>??
  15. ????????????????????<outputEncoding>GBK</outputEncoding>??
  16. ????????????????????</configuration>??
  17. ??????????????????</plugin>??
  18. ?????????????</plugins>??
  19. ??????????</build>??

在site 目录下,最重要的就是site.xml文件了
site.xml描述了主要的site布局,例子如下:
xml 代码?
  1. <?xml?version="1.0"?encoding="ISO-8859-1"?>??
  2. <project?name="Maven">??
  3. ??<!--?left?banner-->??
  4. ??<bannerLeft>??
  5. ????<name>Maven</name>??
  6. ????<src>http://maven.apache.org/images/apache-maven-project.png</src>??
  7. ????<href>http://maven.apache.org/</href>??
  8. ??</bannerLeft>??
  9. ??<!--?right?banner-->??
  10. ??<bannerRight>??
  11. ????<src>http://maven.apache.org/images/maven-small.gif</src>??
  12. ??</bannerRight>??
  13. ??<body>??
  14. ????<!--?默认的link?-->??
  15. ????<links>??
  16. ??????<item?name="Apache"?href="http://www.apache.org/"?/>??
  17. ??????<item?name="Maven?1.0"?href="http://maven.apache.org/"/>??
  18. ??????<item?name="Maven?2"?href="http://maven.apache.org/maven2/"/>??
  19. ????</links>??
  20. ???<!--?菜单项?-->??
  21. ????<menu?name="Maven?2.0">??
  22. ??????<item?name="Introduction"?href="index.html"/>??
  23. ??????<item?name="Download"?href="download.html"/>??
  24. ??????<item?name="Release?Notes"?href="release-notes.html"?/>??
  25. ??????<item?name="General?Information"?href="about.html"/>??
  26. ??????<item?name="For?Maven?1.0?Users"?href="maven1.html"/>??
  27. ??????<item?name="Road?Map"?href="roadmap.html"?/>??
  28. ????</menu>??
  29. ????<menu?ref="reports"?/>??
  30. ????...??
  31. ??</body>??
  32. </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 代码?
  1. <plugin>??
  2. ????????<groupId>org.apache.maven.plugins</groupId>??
  3. ????????<artifactId>maven-javadoc-plugin</artifactId>??
  4. ????????<configuration>??
  5. ??????????<links>??
  6. ????????????<link>http://java.sun.com/j2se/1.4.2/docs/api</link>??
  7. ????????????<link>http://plexus.codehaus.org/ref/1.0-alpha-9/apidocs</link>??
  8. ??????????</links>??
  9. ??????????<aggregate>true</aggregate>??
  10. ????????</configuration>??
  11. ??????</plugin>??

pmd,一个不错的代码检查工具。
????xml 代码?
  1. <plugin>??
  2. ????????<groupId>org.apache.maven.plugins</groupId>??
  3. ????????<artifactId>maven-pmd-plugin</artifactId>??
  4. ????????<configuration>??
  5. ??????????<rulesets>??
  6. ????????????<ruleset>/rulesets/basic.xml</ruleset>??
  7. ????????????<ruleset>/rulesets/imports.xml</ruleset>??
  8. ????????????<ruleset>/rulesets/unusedcode.xml</ruleset>??
  9. ????????????<ruleset>/rulesets/finalizers.xml</ruleset>??
  10. ????????????<ruleset>/rulesets/controversial.xml</ruleset>??
  11. ????????????<ruleset>/rulesets/strings.xml</ruleset>??
  12. ????????????<ruleset>/rulesets/strictexception.xml</ruleset>??
  13. ????????????<ruleset>/rulesets/optimizations.xml</ruleset>??
  14. ????????????<ruleset>/rulesets/naming.xml</ruleset>??
  15. ??????????</rulesets>??
  16. ??????????<linkXref>true</linkXref>??
  17. ??????????<sourceEncoding>GBK</sourceEncoding>??
  18. ??????????<minimumTokens>100</minimumTokens>??
  19. ??????????<!--支持jdk?1.5?-->??
  20. ??????????<targetJdk>1.5</targetJdk>??
  21. ????????</configuration>??
  22. ??????</plugin>??


checkstyle,主要的代码格式工具,和pmd相比,更注重代码的格式。
?????xml 代码?
  1. <plugin>??
  2. ????????<groupId>org.apache.maven.plugins</groupId>??
  3. ????????<artifactId>maven-checkstyle-plugin</artifactId>??
  4. ????????<configuration>??
  5. ??????????<configLocation>sun_checks.xml</configLocation>??
  6. ????????</configuration>??
  7. ??????</plugin>??


Surefire test,单元测试结果报表
??xml 代码?
  1. <plugin>??
  2. ?????<groupId>org.apache.maven.plugins</groupId>??
  3. ?????<artifactId>maven-surefire-report-plugin</artifactId>??
  4. ???</plugin>??


source xref,在网站上直接察看java源代码

????xml 代码?
  1. <plugin>??
  2. ????????<groupId>org.apache.maven.plugins</groupId>??
  3. ????????<artifactId>maven-jxr-plugin</artifactId>??
  4. ??????</plugin>??

tag list,用于查找在代码中预定义的标签,如todo
????xml 代码?
  1. <plugin>??
  2. ????????<groupId>org.codehaus.mojo</groupId>??
  3. ????????<artifactId>taglist-maven-plugin</artifactId>??
  4. ????????<configuration>??
  5. ??????????<tags>??
  6. ????????????<tag>TODO</tag>??
  7. ????????????<tag>@todo</tag>??
  8. ????????????<tag>FIXME</tag>??
  9. ??????????</tags>??
  10. ????????</configuration>??
  11. ??????</plugin>??


基本的站点已经成型了,下面就是生成了。
执行mvn site 生成目录,或者直接执行 mvn site-deploy 发布站点 1 楼 lsy 2007-05-10 好帖。多谢楼主介绍的这些plugin

读书人网 >软件架构设计

热点推荐