2011-08-05 10 views
18

私のプロジェクトには、ビルドに失敗したためにサイズが非常に大きい特定のディレクトリと特定のPHPファイルがあり、私build.xmlpdepend、phpmd、phpcpd、phpcs、phpdoc、phplocの特定のディレクトリとファイルを除外

Ques1-に私は、プロジェクト内のすべてのPHPファイル用--ignore="path/filename"を記述する必要がありますか?

Ques2- phpのではなく、.datはので、私はあまりにも--ignoreでこれらのファイルを言及する必要があり、特定のファイルがありますか?

Ques3-ファイルのサイズに基づいてファイルを除外し、500KBを超えるすべてのファイルを除外するように指定できますか?

私の現在のxmlファイルは次のようになります。

<?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> 

そして、私はこれらの

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 

のようなエラーが、私はそれを解決するために何をすべき取得していますか?ディレクトリから大きなファイルを手動で削除すると、ビルドはただちに終了しますが、ビルドを自動的に実行して、これらの大きなファイルを持つsvnからコードベースをチェックアウトします。

Ques4-これらのファイルがチェックアウトされないようにチェックアウトを設定することはできますか?

答えて

27

手動

<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> 

私の答えは、誰かのために役立つことを願っています。

+6

-1サンプルコードに 'fileset'の例はありません! – Ben

+1

ファイル(ディレクトリではない)を除外する必要がある場合は、--names-excludeオプションを使用してください。 Select0r

1

In my project there are certain directories and certain php files which are very large in size due to which my build is failing and I want to exclude them in my build.xml

There are certain files which are not php but .dat so should I mention these files in the --ignore too?

ここでは、必要なファイルのコピーを作成してそこから作業する方法を説明します。ディレクトリ全体をコピーして特定のファイルを削除するか、必要なファイルだけをコピーしてください。前者の場合、findプログラムはどうなる:後者で

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

を、私はant's <copy> taskを使用しています:

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

PHP Fatal error: Allowed memory size of 262144000 bytes exhausted

あなたはPHPでPHPのメモリー・サイズを大きくする必要があります.inimemory_limitを検索し、値を512 MBなどの値に設定します。あなたはファイルセットプロパティを使用するか、またはディレクトリを除外追加することができ、すべてのターゲットについては

memory_limit = 512M 
+1

あなたはini_set( 'memory_limit'、 '512M')を使うこともできます。設定ファイルに入れてそれをインクルードするだけです。 –

+1

これは正しいとは感じません... – Ben

+0

他の唯一のコースは解析に失敗しています。 1つを選択します。 – demonkoryu

関連する問題