是否可以在所有项目继承的企业pom中创建通用site.xml?

时间:2016-06-02 01:39:15

标签: java maven maven-site-plugin

我的组织有我的父母:

<project
   <groupId>org.myorg</groupId>
   <artifactId>oss-parent</artifactId>
   <packaging>pom</packaging>
   <version>6-SNAPSHOT</version>
...
</project>

在同一个项目中是site.xml:

<project>

   <skin>
      <groupId>org.apache.maven.skins</groupId>
      <artifactId>maven-fluido-skin</artifactId>
      <version>1.5</version>
   </skin>

   <custom>
      <fluidoSkin>
         <sideBarEnabled>true</sideBarEnabled>
      </fluidoSkin>
   </custom>

   <body>
      <menu ref="reports" />
   </body>
</project>

如果我跑mvn clean site,我会得到流体主题。

现在,在组织中其他地方的实际项目中,它继承自我们的企业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>

但是当我在mvn clean site下运行my-project时,我得到了正常的主题,而不是流媒体主题。是什么给了什么?

1 个答案:

答案 0 :(得分:0)

想出来。这曾经有效,但默认的行为发生了变化:

https://maven.apache.org/plugins/maven-site-plugin/attach-descriptor-mojo.html

  

此默认执行已从Maven 3.x的内置生命周期中删除,用于pom项目。实际使用这些项目为子模块提供公共站点描述符的用户需要明确定义此目标执行以恢复预期的行为。

修复:

  <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>

修改

虽然这使主题继承,但现在左侧边栏总是空白!请在此处查看我的后续问题:maven-site-plugin: <body> tag is not being inherited