Как нам Maven PDF плагин для создания PDF из Surefire Report?
После запуска моих тестов JUnit я использую плагин Maven Surefire Report (http://maven.apache.org/plugins/maven-surefire-report-plugin/) для генерации отчета о тестировании HTML. Это приводит к следующему файлу:
./target/site/surefire-report.html
Я знаю, что существует плагин Maven PDF для создания PDF-файлов (http://maven.apache.org/plugins/maven-pdf-plugin/surefire-report.html). Но мне не удается заставить его работать. Я включил это в мой pom.xml:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pdf-plugin</artifactId>
<executions>
<execution>
<id>pdf</id>
<phase>test</phase>
<goals>
<goal>pdf</goal>
</goals>
<configuration>
<outputDirectory>/tmp</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
Когда я пытаюсь запустить его, я получаю сообщение об ошибке, что некоторый исходный каталог не существует:
...
[mvn] [INFO] [pdf:pdf {execution: default-cli}]
[mvn] [INFO] ------------------------------------------------------------------------
[mvn] [INFO] Building VB Common
[mvn] [INFO] task-segment: [pdf:pdf]
[mvn] [INFO] ------------------------------------------------------------------------
[mvn] [INFO] [pdf:pdf {execution: default-cli}]
[mvn] [INFO] ------------------------------------------------------------------------
[mvn] [ERROR] BUILD ERROR
[mvn] [INFO] ------------------------------------------------------------------------
[mvn] [INFO] Error during document generation: Source directory doesn't exists (/home/user/myproject/src/site).
[mvn]
...
Ошибка не столь удивительна, так как у меня нет папки./src/site. Но как я могу настроить плагин PDF, чтобы он брал мой отчет HTML из./target/site/surefire-report.html в качестве исходного файла для PDF?
2 ответа
У меня нет никаких проблем, включая мой отчет в PDF:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<build>
<extensions>
<!-- Enabling the use of FTP -->
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ftp</artifactId>
<version>2.2</version>
</extension>
</extensions>
<plugins>
<!-- Génération d'un PDF à l'identique du site maven -->
<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>
<configuration>
<outputDirectory>${project.reporting.outputDirectory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<!-- Gestion des plugins pour ce projet et ses sous modules -->
<pluginManagement>
<plugins>
<!-- Indication de compilation sur la version de Java à utiliser -->
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
<!-- Gestion du tagage des releases -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.2.2</version>
<configuration>
<tagBase>http://svn.xxx.fr.sopra/corprepo/svn/myproject/repository/tags/</tagBase>
<scmCommentPrefix>[DEV#GCL]</scmCommentPrefix>
</configuration>
</plugin>
<!-- Gestion de la fabrication du site maven -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.0</version>
<configuration>
<locales>fr</locales>
<outputEncoding>UTF-8</outputEncoding>
</configuration>
</plugin>
<!-- Génération d'un PDF à l'identique du site maven -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pdf-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<id>pdf</id>
<phase>site</phase>
<goals>
<goal>pdf</goal>
</goals>
<configuration>
<outputDirectory>${project.reporting.outputDirectory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- - - - - - - - - - - - - - Reporting & GCL - - - - - - - - - - - - - -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.8.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.9.1</version>
<configuration>
<configLocation>/src/main/config/checkstyle-sopra.xml</configLocation>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.12</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>2.7.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>2.3</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.4</version>
<reportSets>
<reportSet>
<reports>
<report>summary</report>
<report>modules</report>
<report>project-team</report>
<report>mailing-list</report>
<report>cim</report>
<report>issue-tracking</report>
<report>license</report>
<report>scm</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
И мой src/main/pdf.xml
<document xmlns="http://maven.apache.org/DOCUMENT/1.0.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/DOCUMENT/1.0.1 http://maven.apache.org/xsd/document-1.0.1.xsd"
outputName="${project.artifactId}">
<meta>
<title>Maven PDF Plugin</title>
<author>The Apache Maven Project</author>
</meta>
<toc name="Table of Contents">
<item name="Introduction" ref="index.apt"/>
</toc>
<cover>
<coverTitle>${project.name}</coverTitle>
<coverSubTitle>v. ${project.version}</coverSubTitle>
<coverType>User Guide</coverType>
<projectName>${project.name}</projectName>
<projectLogo>images/logo_myorg.png</projectLogo>
<companyName>${project.organization.name}</companyName>
<companyLogo>images/logo_myorg.png</companyLogo>
</cover>
Я не могу дать вам PDF из-за конфиденциальной политики, но она отлично работает:)
Из документации к плагину Maven PDF, плагин нуждается в file that contains the DocumentModel of the PDF to generate.
По умолчанию src/site/pdf.xml
Вот почему плагин не работает, когда он не находит этот файл.
Плагин предназначен для генерации pdf-версии отчета, созданного плагином maven site. Таким образом, он генерирует PDF-версии всех отчетов для проекта, которые будут включать в себя верный отчет, если он настроен.