刚才正在配置一个项目的报告输出,在配置pom的时候按照maven2的做法在<reporting>节点下加上了pmd、checkstyle等plugin
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${checkstyle.plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${pmd.plugin.version}</version>
</plugin>
</reporting>
却发现在target/site目录下除了image及css文件夹之外,一个html也没有,而且预期的报告也没有生成,我就纳闷了
几经Google后,终于查到,原来maven-site-plugin在3.0版本采用了一种全新的配置形式,导致不能接受<reporting>节点下声明的报告插件,这一点在其官方网站上有介绍:http://maven.apache.org/plugins/maven-site-plugin/maven-3.html#Configuration_formats
解决办法就是,将<reporting>内的plugin声明,转换为如下形式:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.0</version>
<configuration>
<reportPlugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
</plugin>
</reportPlugins>
</configuration>
</plugin>
还有一点就是,在3.0版本中,在maven-site-plugin内声明的插件是可以忽略version的,maven-site-plugin会按照如下顺序查找:
1. build.plugins
2. build.pluginsManagement
3.repository(在repository中查找可能会使用Snapshot的插件,和maven插件一样规则)
至此,改动已经完成,运行mvn clean site即可看见project-reports.html文件,打开所期望的报告页面了。
但是,index.html呢。。。
让index.html回来,请看《maven-site-plugin笔记——内部工作原理》
本文介绍了maven-site-plugin从2.3到3.0版本的变化,特别是新版本不再接受<reporting>节点下的插件配置。解决方法是将报告插件配置转换为新的形式,并说明了在3.0版本中,maven-site-plugin如何查找插件的顺序。通过这些改动,可以成功生成project-reports.html文件,但要找回index.html则需进一步了解maven-site-plugin的内部工作原理。
587

被折叠的 条评论
为什么被折叠?



