Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javadoc概览页面中访问maven项目版本?_Maven_Pdf_Maven Javadoc Plugin - Fatal编程技术网

如何在javadoc概览页面中访问maven项目版本?

如何在javadoc概览页面中访问maven项目版本?,maven,pdf,maven-javadoc-plugin,Maven,Pdf,Maven Javadoc Plugin,我将PDFDoclet与maven javadoc plugin一起使用,现在我已经用了很长一段时间了。我的maven和javadoc配置几乎已经足够好了,但我现在面临的问题是,我无法解决如何将项目版本号推送到PDF标题页中 在你告诉我使用maven的过滤来回答我的问题之前,让我先概述一下为什么它不起作用 过滤的工作原理是从src文件夹的某个地方获取原始文件,进行变量替换,并将输出放入target文件夹 Javadoc的工作原理是读取src/main/java和src/main/Javadoc中

我将
PDFDoclet
maven javadoc plugin
一起使用,现在我已经用了很长一段时间了。我的maven和javadoc配置几乎已经足够好了,但我现在面临的问题是,我无法解决如何将项目版本号推送到PDF标题页中

在你告诉我使用maven的
过滤来回答我的问题之前,让我先概述一下为什么它不起作用

过滤的工作原理是从
src
文件夹的某个地方获取原始文件,进行变量替换,并将输出放入
target
文件夹

Javadoc的工作原理是读取
src/main/java
src/main/Javadoc
中的文件,然后AFAIK将结果输出到
target
。这意味着过滤对于Javadoc是无用的,因为它不会从
target

我的结果表明,javadoc注释中的任何maven变量都不会被替换

我可以使用什么技巧将这些变量替换到javadoc中

解决方案不能涉及在site:site任务之后过滤javadoc输出,除非资源过滤在PDF上起作用

这是配置,FWIW:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>2.10.3</version>
    <configuration>
      <show>package</show>
      <docfilessubdirs>true</docfilessubdirs>
      <tags>
        <tag>
          <name>pdfInclude</name>
          <placement>X</placement>
          <head></head>
        </tag>
      </tags>
    </configuration>
    <reportSets>
      <reportSet>
        <id>PDF</id>
        <reports>
          <report>javadoc</report>
        </reports>
        <configuration>
          <name>PDF</name>
          <description>PDF doc</description>
          <destDir>pdf</destDir>
          <doclet>com.tarsec.javadoc.pdfdoclet.PDFDoclet</doclet>
          <docletPath>${basedir}/pdfdoclet/pdfdoclet-1.0.3-all.jar</docletPath>
          <useStandardDocletOptions>false</useStandardDocletOptions>
          <additionalparam>-pdf my_tech_doc-${project.version}.pdf
            -config ${basedir}/pdfdoclet/pdfdoclet.properties</additionalparam>
        </configuration>
      </reportSet>
    </reportSets>
  </plugin>

PDFDoclet
特定的
api.
属性应将标题页作为PDF的第一页,但它不起作用。如果我在这里错过了一个技巧,并且我可以制作该标题页,那么这也可能会以某种方式提供解决方案。

我意识到我可以使用maven的
功能进行快速而肮脏的黑客攻击:

  <resource>
    <directory>${basedir}/src/main/resources</directory>
    <targetPath>${basedir}/src/main/javadoc</targetPath>
    <filtering>true</filtering>
    <includes>
      <include>**/overview.html</include>
    </includes>
  </resource>

${basedir}/src/main/resources
${basedir}/src/main/javadoc
真的
**/overview.html
这将复制我的
overview.html
并对其进行过滤,将其输出到
javadoc
源目录


肮脏的是,这个过滤后的版本可能会意外地在版本控制下结束,尽管使用
svn
我可以将其添加到
忽略
列表中。

我意识到我可以使用maven
功能进行快速而肮脏的黑客攻击:

  <resource>
    <directory>${basedir}/src/main/resources</directory>
    <targetPath>${basedir}/src/main/javadoc</targetPath>
    <filtering>true</filtering>
    <includes>
      <include>**/overview.html</include>
    </includes>
  </resource>

${basedir}/src/main/resources
${basedir}/src/main/javadoc
真的
**/overview.html
这将复制我的
overview.html
并对其进行过滤,将其输出到
javadoc
源目录

糟糕的是,这个过滤后的版本可能会意外地在版本控制下结束,尽管使用
svn
我可以将其添加到
忽略
列表中