【问题标题】:multi-module project and ${basedir} placeholder多模块项目和 ${basedir} 占位符
【发布时间】:2012-03-13 09:12:08
【问题描述】:

我有一个具有以下结构的多模块项目:

-parent
   -module1
   -module2
   -src
      -main
         -javadoc
             -stylesheet.css
   -pom.xml

我想在父 POM 中配置 javadoc 插件。但是,我需要指定stylesheet.css 文件的路径。所以,我使用值${basedir}\src\main\javadoc\stylesheet.css。 但是,当我查看子模块的有效 POM 时,${basedir} 被子模块基目录的绝对路径替换,但那里没有 src/main/javadoc/stylesheet.css 文件。我认为在子模块中复制stylesheet.css 文件不是解决方案。

谢谢

【问题讨论】:

    标签: maven multi-module


    【解决方案1】:

    ${basedir}${project.basedir} 的缩写)是项目的 pom.xml 文件所在的目录。因此,对于子模块,此属性将包含相应的 module1 和 module2 目录的路径。

    如果你想在父 pom.xml 中配置 javadoc 插件以便对子模块有效,你应该使用../src/main/javadoc/stylesheet.css

    【讨论】:

    • 对子模块来说,他们将在父 src/main/javadoc 目录中找到文件。但是父项目呢?它会尝试从父目录中找到文件吗?它是如何工作的?
    • @MickaelMarrache 父项目通常是一个 pom 打包项目,例如它不包含任何源文件。如果不是您的情况,那么您必须为父项目和每个子项目配置 javadoc 插件。
    • 如果我有一个多层次的项目,怎么办?比如Parent-->Module1-->Module1-2.
    • 请参阅 cmets 至 this 问题。也许您会在其中找到合适的解决方案。
    【解决方案2】:

    Maven Javadoc 插件允许您包含存储在 JAR 文件中的样式表资源,如下所述:http://maven.apache.org/plugins/maven-javadoc-plugin/examples/stylesheet-configuration.html

    这将允许您创建一个仅资源 JAR,将其添加到您的 javadoc 插件的依赖项列表中,然后从那里加载资源。这将消除复制样式表文件或引用部署在父 POM 中的共享集的需要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-30
      • 1970-01-01
      • 2011-08-29
      • 1970-01-01
      • 2019-07-19
      • 2012-09-18
      • 2010-09-27
      • 1970-01-01
      相关资源
      最近更新 更多