maven-site-plugin: <body> 标签未被继承
maven-site-plugin: <body> tag is not being inherited
如果我在 parent 上执行 mvn site:effective-site
,我会得到:
<project>
<bannerLeft>
<name>xxx :: Open Source Parent POM</name>
</bannerLeft>
<publishDate />
<version />
<skin>
<groupId>org.apache.maven.skins</groupId>
<artifactId>maven-fluido-skin</artifactId>
<version>1.5</version>
</skin>
<body>
<menu ref="parent" />
<menu ref="reports" />
</body>
</project>
但是,如果我在 child 项目上这样做,我会得到:
<project>
<bannerLeft>
<name>xxx :: Parent</name>
</bannerLeft>
<publishDate />
<version />
<skin>
<groupId>org.apache.maven.skins</groupId>
<artifactId>maven-fluido-skin</artifactId>
<version>1.5</version>
</skin>
<body />
</project>
这是我的 site_en.xml 与 parent pom
在同一个项目中
<project>
<body>
<menu ref="parent" />
<menu ref="modules" />
<menu ref="reports" />
</body>
<skin>
<groupId>org.apache.maven.skins</groupId>
<artifactId>maven-fluido-skin</artifactId>
<version>1.5</version>
</skin>
</project>
这是该项目的 pom 结构
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.myorg</groupId>
<artifactId>oss-parent</artifactId>
<packaging>pom</packaging>
<version>6-SNAPSHOT</version>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.5.1</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<configuration>
<attach>true</attach>
</configuration>
</plugin>
</plugins>
</build>
这是不继承正文的子项目 pom:
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.myorg</groupId>
<artifactId>oss-parent</artifactId>
<version>6-SNAPSHOT</version>
</parent>
...
<artifactId>my-project</artifactId>
...
</project>
什么给了?当然,我不是唯一需要为整个企业提供网站模板的人!
<body>
<menu ref="parent" inherit="bottom"/>
<menu ref="reports" inherit="bottom"/>
<menu ref="modules" inherit="bottom"/>
</body>
如果在父 pom 的 site.xml 中设置,这会有所帮助。显式继承设置显然是必需的,至少在站点插件 v.3.7 中是这样。
如果我在 parent 上执行 mvn site:effective-site
,我会得到:
<project>
<bannerLeft>
<name>xxx :: Open Source Parent POM</name>
</bannerLeft>
<publishDate />
<version />
<skin>
<groupId>org.apache.maven.skins</groupId>
<artifactId>maven-fluido-skin</artifactId>
<version>1.5</version>
</skin>
<body>
<menu ref="parent" />
<menu ref="reports" />
</body>
</project>
但是,如果我在 child 项目上这样做,我会得到:
<project>
<bannerLeft>
<name>xxx :: Parent</name>
</bannerLeft>
<publishDate />
<version />
<skin>
<groupId>org.apache.maven.skins</groupId>
<artifactId>maven-fluido-skin</artifactId>
<version>1.5</version>
</skin>
<body />
</project>
这是我的 site_en.xml 与 parent pom
在同一个项目中<project>
<body>
<menu ref="parent" />
<menu ref="modules" />
<menu ref="reports" />
</body>
<skin>
<groupId>org.apache.maven.skins</groupId>
<artifactId>maven-fluido-skin</artifactId>
<version>1.5</version>
</skin>
</project>
这是该项目的 pom 结构
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.myorg</groupId>
<artifactId>oss-parent</artifactId>
<packaging>pom</packaging>
<version>6-SNAPSHOT</version>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.5.1</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<configuration>
<attach>true</attach>
</configuration>
</plugin>
</plugins>
</build>
这是不继承正文的子项目 pom:
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.myorg</groupId>
<artifactId>oss-parent</artifactId>
<version>6-SNAPSHOT</version>
</parent>
...
<artifactId>my-project</artifactId>
...
</project>
什么给了?当然,我不是唯一需要为整个企业提供网站模板的人!
<body>
<menu ref="parent" inherit="bottom"/>
<menu ref="reports" inherit="bottom"/>
<menu ref="modules" inherit="bottom"/>
</body>
如果在父 pom 的 site.xml 中设置,这会有所帮助。显式继承设置显然是必需的,至少在站点插件 v.3.7 中是这样。