how to Include the buildnumber in maven pdf:pdf

279 views Asked by At

I am trying to include the build number in the pdf's that get generated with the maven pdf plugin. I have all the documentation of the project I am working on written as a maven site. This way all the documentation is stored with the source code.

Pom.xml

So in the pom.xml I have defined the buildnumber plugin:

<plugin>
   <groupId>org.codehaus.mojo</groupId>
   <artifactId>buildnumber-maven-plugin</artifactId>
   <version>1.2</version>
   <executions>
     <execution>
       <phase>generate-resources</phase>
       <goals>
         <goal>create</goal>
       </goals>
     </execution>
   </executions>
   <configuration>
     <doCheck>false</doCheck>
     <doUpdate>false</doUpdate>
     <format>{0,date,yyyy-MM-dd_HH-mm}_{1}</format>
     <items>
       <item>timestamp</item>
   <item>${user.name}</item>
     </items>
   </configuration>
 </plugin>

pdf.xml

And in the pdf.xml

<cover>
  <coverTitle>${project.name}</coverTitle>
  <coverSubTitle>v. ${project.version}</coverSubTitle>
  <coverType>Technical documentation</coverType>
  <coverVersion>build: ${project.buildNumber}</coverVersion>
  <projectName>${project.name}</projectName>
  <projectLogo>images/telfortlogo.jpg</projectLogo>
 </cover>

I even put resource filtering to ${basedir}/site but it has no effect. I keep getting the ${buildNumber} instead of the result of the buildnumber plugin.

1

There are 1 answers

0
Akro On BEST ANSWER

To get something similar working my buildnumber plugin configuration looked like this:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>buildnumber-maven-plugin</artifactId>
    <version>1.2</version>
    <executions>
        <execution>
            <phase>pre-site</phase>
            <goals>
                <goal>create</goal>
            </goals>
            <configuration>
                <doCheck>false</doCheck>
                <doUpdate>false</doUpdate>
                <format>{0,date,yyyy-MM-dd_HH-mm}_{1}</format>
                <items>
                    <item>timestamp</item>
                    <item>${user.name}</item>
                </items>
            </configuration>
        </execution>
    </executions>
</plugin>

And in the pdf.xml:

<cover>
    <coverTitle>${project.name}</coverTitle>
    <coverSubTitle>v. ${project.version} build ${buildNumber}</coverSubTitle>
    <coverType>User Guide</coverType>
    <projectName>${project.name}</projectName>
</cover>

I believe that your issue comes from the fact that you are executing the buildnumber create goal during the generate-resources phase. And if you are using mvn pdf:pdf or mvn site, the generate-resources will not get executed. I my setup I have configured the pdf plugin to run on the site phase:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-pdf-plugin</artifactId>
    <executions>
        <execution>
            <id>pdf</id>
            <phase>site</phase>
            <goals>
                <goal>pdf</goal>
            </goals>

I can then get the pdf to be generated at the end of the site phase.