with template deploy application phpunit jenkins phpdoc php-codebrowser

phpunit - deploy - jenkins php template



Excluir ciertos directorios y archivos en pdepend, phpmd, phpcpd, phpcs, phpdoc, phploc (2)

En mi proyecto hay ciertos directorios y ciertos archivos php que son muy grandes debido a que mi compilación está fallando y quiero excluirlos en mi build.xml

Ques1- ¿Tengo que escribir --ignore="path/filename" para cada archivo php en el proyecto?

Ques2- Hay ciertos archivos que no son php pero .dat debería mencionar estos archivos en la --ignore ? También?

Ques3: ¿Puedo especificar que se excluyan los archivos en función de su tamaño para que excluya todos los archivos de más de 500 kb?

Mi archivo xml actual se ve así:

<?xml version="1.0" encoding="UTF-8"?> <project name="name-of-project" default="build" basedir="."> <property name="root.dir" value="${basedir}/.."/> <property name="source" value="${root.dir}"/> <target name="clean" description="Clean up and create artifact directories"> <delete dir="${basedir}/build/api"/> <delete dir="${basedir}/build/code-browser"/> <delete dir="${basedir}/build/coverage"/> <delete dir="${basedir}/build/logs"/> <delete dir="${basedir}/build/pdepend"/> <mkdir dir="${basedir}/build/api"/> <mkdir dir="${basedir}/build/code-browser"/> <mkdir dir="${basedir}/build/coverage"/> <mkdir dir="${basedir}/build/logs"/> <mkdir dir="${basedir}/build/pdepend"/> </target> <target name="phpunit" description="Run unit tests using PHPUnit and generates junit.xml and clover.xml"> <exec executable="phpunit" failonerror="true"> <env key="DOCUMENT_ROOT" value="${source}/api"/> <env key="MODEL_ROOT" value="${source}/model"/> </exec> </target> <target name="parallelTasks" description="Run the pdepend, phpmd, phpcpd, phpcs, phpdoc and phploc tasks in parallel using a maximum of 2 threads."> <parallel threadCount="2"> <sequential> <antcall target="pdepend"/> <antcall target="phpmd"/> </sequential> <antcall target="phpcpd"/> <antcall target="phpcs"/> <antcall target="phpdoc"/> <antcall target="phploc"/> </parallel> </target> <target name="pdepend" description="Generate jdepend.xml and software metrics charts using PHP_Depend"> <exec executable="pdepend"> <arg value="--jdepend-xml=${basedir}/build/logs/jdepend.xml" /> <arg value="--jdepend-chart=${basedir}/build/pdepend/dependencies.svg" /> <arg value="--overview-pyramid=${basedir}/build/pdepend/overview-pyramid.svg" /> <arg value="--ignore=${source}/web" /> <arg path="${source}" /> </exec> </target> <target name="phpmd" description="Generate pmd.xml using PHPMD"> <exec executable="phpmd"> <arg path="${source}" /> <arg value="xml" /> <arg value="${basedir}/build/phpmd.xml" /> <arg value="--reportfile" /> <arg value="${basedir}/build/logs/pmd.xml" /> <arg value="--exclude" /> <arg value="${basedir}/web" /> </exec> </target> <target name="phpcpd" description="Generate pmd-cpd.xml using PHPCPD"> <exec executable="phpcpd"> <arg value="--log-pmd" /> <arg value="${basedir}/build/logs/pmd-cpd.xml" /> <arg value="--exclude" /> <arg value="${basedir}/web" /> <arg path="${source}" /> </exec> </target> <target name="phploc" description="Generate phploc.csv"> <exec executable="phploc"> <arg value="--log-csv" /> <arg value="${basedir}/build/logs/phploc.csv" /> <arg value="--exclude" /> <arg value="${basedir}/web" /> <arg path="${source}" /> </exec> </target> <target name="phpcs" description="Generate checkstyle.xml using PHP_CodeSniffer"> <exec executable="phpcs" output="/dev/null"> <arg value="--report=checkstyle" /> <arg value="--report-file=${basedir}/build/logs/checkstyle.xml" /> <arg value="--standard=${basedir}/build/phpcs.xml" /> <arg value="--ignore=${source}/web" /> <arg path="${source}" /> </exec> </target> <target name="phpdoc" description="Generate API documentation using PHPDocumentor"> <exec executable="phpdoc"> <arg value="--directory" /> <arg path="${source}" /> <arg value="--target" /> <arg path="${basedir}/build/api" /> <arg value="--ignore" /> <arg path="${basedir}/web" /> </exec> </target> <target name="phpcb" description="Aggregate tool output with PHP_CodeBrowser"> <exec executable="phpcb"> <arg value="--log" /> <arg path="${basedir}/build/logs" /> <arg value="--source" /> <arg path="${source}" /> <arg value="--ignore" /> <arg path="${basedir}/web" /> <arg value="--output" /> <arg path="${basedir}/build/code-browser" /> </exec> </target> <target name="build" depends="clean,parallelTasks,phpunit,phpcb"/> </project>

Y estoy recibiendo errores como estos

pdepend: [exec] PHP_Depend 0.10.5 by Manuel Pichler [exec] Parsing source files: [exec] phpcpd 1.3.2 by Sebastian Bergmann. [exec] PHP Fatal error: Allowed memory size of 262144000 bytes exhausted (tried to allocate 71 bytes) in /usr/share/pear/PHPCPD/Detector.php on line 115 [exec] PHP Stack trace: [exec] PHP 1. {main}() /usr/bin/phpcpd:0 [exec] PHP 2. PHPCPD_TextUI_Command::main() /usr/bin/phpcpd:51 [exec] PHP 3. PHPCPD_Detector->copyPasteDetection() /usr/share/pear/PHPCPD/TextUI/Command.php:216 [exec] PHP 4. token_get_all() /usr/share/pear/PHPCPD/Detector.php:115 [exec] Result: 255 phploc: [exec] phploc 1.6.1 by Sebastian Bergmann. [exec] PHP Fatal error: Allowed memory size of 262144000 bytes exhausted (tried to allocate 71 bytes) in /usr/share/pear/PHPLOC/Analyser.php on line 279 [exec] PHP Stack trace: [exec] PHP 1. {main}() /usr/bin/phploc:0 [exec] PHP 2. PHPLOC_TextUI_Command::main() /usr/bin/phploc:51 [exec] PHP 3. PHPLOC_Analyser->countFiles() /usr/share/pear/PHPLOC/TextUI/Command.php:215 [exec] PHP 4. PHPLOC_Analyser->countFile() /usr/share/pear/PHPLOC/Analyser.php:170 [exec] PHP 5. token_get_all() /usr/share/pear/PHPLOC/Analyser.php:279 [exec] Result: 255

¿Qué debo hacer para resolverlo? Si elimino manualmente los archivos grandes del directorio, la compilación simplemente pasa, pero quiero que la compilación se ejecute automáticamente y verifique el código base de svn, que tendrá estos archivos grandes.

Ques4: ¿Puedo configurar mi proceso de pago de tal manera que estos archivos no se verifiquen?


En mi proyecto hay ciertos directorios y ciertos archivos php que son muy grandes debido a que mi compilación está fallando y quiero excluirlos en mi build.xml

Hay ciertos archivos que no son php pero .dat, ¿debería mencionar estos archivos en la opción --orregir también?

Lo que estoy haciendo en este caso es hacer una copia de los archivos necesarios y trabajar desde allí. Copie todo el directorio y elimine ciertos archivos, o copie solo los archivos necesarios. En el primer caso, el programa de find haría:

cp /my/large/project /tmp/work find /tmp/work -name "*.dat" -delete find /tmp/work -size 500k -delete

En este último, estoy usando la tarea <copy> la hormiga :

<copy todir="${dir.source.our}" includeEmptyDirs="true"> <fileset dir="${dir.source}/ext" includes="${glob.source.our}"/> </copy>

Error fatal de PHP: tamaño de memoria permitido de 262144000 bytes agotado

Tendrás que aumentar el tamaño de la memoria PHP en php.ini . Busque memory_limit y establezca el valor en algo así como 512 MB, por ejemplo

memory_limit = 512M


Para cada destino, puede utilizar la propiedad de conjunto de archivos o agregar directorios de exclusión manualmente

<target name="phploc" description="Measure project size using PHPLOC"> <exec executable="phploc"> <arg value="--log-csv"/> <arg value="${basedir}/build/logs/phploc.csv"/> <arg value="--exclude"/> <arg value="${src}/api/"/> <arg value="--exclude"/> <arg value="${src}/external/"/> <arg path="${src}"/> </exec> </target> <target name="pdepend" description="Calculate software metrics using PHP_Depend"> <exec executable="pdepend"> <arg value="--jdepend-xml=${basedir}/build/logs/jdepend.xml"/> <arg value="--jdepend-chart=${basedir}/build/pdepend/dependencies.svg"/> <arg value="--overview-pyramid=${basedir}/build/pdepend/overview-pyramid.svg"/> <arg value="--ignore=/dir/one/,/dir/two/"/> <arg path="${src}"/> </exec> </target> <target name="phpcpd" description="Find duplicate code using PHPCPD"> <exec executable="phpcpd"> <arg value="--log-pmd"/> <arg value="${basedir}/build/logs/pmd-cpd.xml"/> <arg value="--exclude"/> <arg value="${src}/api/"/> <arg value="--exclude"/> <arg value="${src}/exclude/"/><arg path="${src}"/> </exec> </target>

Espero que mi respuesta sea de ayuda para alguien.