2

I generate API documentation for my PHP project with Jenkins and Ant on project building:

<?xml version="1.0" encoding="UTF-8"?>
<project name="MyProject" default="full-build">
    <property name="pdepend" value="/usr/share/.composer/vendor/bin/pdepend" />
    ...
    <target name="full-build" depends="prepare,static-analysis,phpdox" />
    <target name="prepare" unless="prepare.done" depends="clean">
        <mkdir dir="${basedir}/build/api" />
        ...
    </target>
    <target name="clean" unless="clean.done">
        <delete dir="${basedir}/build/api" />
        ...
    </target>
    <target name="static-analysis">
        <parallel threadCount="2">
            <sequential>
                <antcall target="pdepend" />
                <antcall target="phpmd" />
            </sequential>
            <antcall target="lint" />
            <antcall target="phpcpd" />
            <antcall target="phpcs" />
            <antcall target="phploc" />
        </parallel>
    </target>
    <target name="pdepend" unless="pdepend.done" depends="prepare">
        ...
    </target>
    <target name="phpmd" unless="phpmd.done">
        ...
    </target>
    <target name="lint" unless="lint.done">
        ...
    </target>
    <target name="phpcpd" unless="phpcpd.done">
        ...
    </target>
    <target name="phpcs" unless="phpcs.done">
        ...
    </target>
    <target name="phpdox" depends="phploc,phpcs,phpmd" unless="phpdox.done">
        <exec executable="${phpdox}" dir="${basedir}/build" taskname="phpdox">
            <arg value="--file" />
            <arg value="${basedir}/build/phpdox.xml" />
        </exec>
        <property name="phpdox.done" value="true" />
    </target>
    <target name="phploc" unless="phploc.done">
        ...
    </target>
</project>

When the build is completed and I open the index.xhtml of the API doc, a warning is displayed:

Warning: PHPLoc enrichment not enabled or phploc.xml not found.

enter image description here

Why is this warning displayed and how to solve the issue it caused by?

automatix
  • 14,018
  • 26
  • 105
  • 230

1 Answers1

4

phpDox requires a phploc.xml file to be generated. Does your target phploc generates such a file (param: --log-xml <filename>)?

Example target phploc:

<target name="phploc" unless="phploc.done">
    <exec executable="${phploc}" taskname="phploc">
        <arg value="--count-tests" />
        <arg value="--log-csv" />
        <arg path="${basedir}/build/logs/phploc.csv" />
        <arg value="--log-xml" />
        <arg path="${basedir}/build/logs/phploc.xml" />
        <arg path="....." />
    </exec>
    <property name="phploc.done" value="true"/>
</target>

If the PHPLOC enricher has not been found or started, the following line should be omitted from the phpDox Ant build script feedback:

[phpdox] [06.07.2016 - 16:37:58] Registered enricher 'phploc'
automatix
  • 14,018
  • 26
  • 105
  • 230
Sir.Chefcoq
  • 330
  • 1
  • 7
  • 1
    If all else fails, you can always point to the created `phploc.xml` file directly in the `phpdox.xml` config file. You can do this by adding: ` ` inside of the `` tag of the `phpdox.xml` config file. – Sir.Chefcoq Jul 07 '16 at 13:12