标签存档: maven

Maven中多模块项目的Site生成

疲累不堪的我一定不能在写完之前倒下。

Maven生成站点大家都会。mvn site,mvn site-deploy。不管是单模块,多模块一切OK。可是如果不凑巧,你如果为一个子项目专门 配置了 site.xml ,

当你在父项目目录下运行mvn site-deploy时,很遗憾,他会一点作用都没有,使用的是 父项目 site.xml

当你进入子项目目录,运行 mvn site-deploy,一切OK。

于是这五个小时我被折磨的蛋疼,学习的大量的Maven知识,实验的数百次(运行了一下history,发现其实只有73次)。于是倒下了。

在昏死中,我想起来了,site.xml支持继承,而如果要编写一个支持继承的插件,最起码的要求就是在运行父子项目的时候必须运行的是同一个插件。那么 解决方案如下:

在父项目的 pluginManagement 中明确 使用 maven-site-plugin。而在每一个项目中都明确使用 maven-site-plugin

代码如下:父项目pom.xml:

  1.  
  2. <build>
  3. <pluginManagement>
  4. <plugin>
  5. <groupId>org.apache.maven.plugins</groupId>
  6. <artifactId>maven-site-plugin</artifactId>
  7. <version>2.0</version>
  8. </plugin>
  9. </plugins>
  10. </pluginManagement>
  11. <plugins>
  12. <plugin>
  13. <groupId>org.apache.maven.plugins</groupId>
  14. <artifactId>maven-site-plugin</artifactId>
  15. </plugin>
  16. </plugins>
  17. </build>

子项目pom.xml:

  1.  
  2. <build>
  3. <plugins>
  4. <plugin>
  5. <groupId>org.apache.maven.plugins</groupId>
  6. <artifactId>maven-site-plugin</artifactId>
  7. </plugin>
  8. </plugins>
  9. </build>

解决之,终得眠