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:

<build>
    <pluginManagement>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId> maven-site-plugin</artifactId>
				<version> 2.0</version>
			</plugin>
		</plugins>
    </pluginManagement>
    <plugins>
		<plugin>
			<groupId> org.apache.maven.plugins</groupId>
			<artifactId> maven-site-plugin</artifactId>
		</plugin>
		</plugins>
 </build>

 子项目pom.xml:

	<build>
		<plugins>
			<plugin>
				<groupId> org.apache.maven.plugins</groupId>
				<artifactId> maven-site-plugin</artifactId>
			</plugin>
		</plugins>
       </build>

 解决之,终得眠

猜你喜欢

转载自marsvaadin.iteye.com/blog/1327697