{"version":"1.0","provider_name":"\u0427\u0443\u0434\u043e{\u0432\u0438\u0449\u043d\u044b\u0435} \u0437\u0430\u043c\u0435\u0442\u043a\u0438","provider_url":"https:\/\/miracle.rpz.name","author_name":"MiRacLe","author_url":"https:\/\/miracle.rpz.name\/author\/miracle\/","title":"Phing Is Not GNU","html":"<p style=\"text-align: right; width: 400px; float: right; margin-right: 20px\">\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430 \u0442\u0440\u0438 \u0447\u0430\u0441\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0437\u0430 \u043f\u044f\u0442\u044c \u043c\u0438\u043d\u0443\u0442 \u0442\u043e, \u0447\u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0434\u0435\u043b\u0430\u043b \u0431\u044b \u0446\u0435\u043b\u044b\u0439 \u0447\u0430\u0441...\r\n\u00a9 \u041a\u0442\u043e-\u0442\u043e\r\n\r\n<big>\"\u0414\u043e\u0440\u043e\u0433\u0430\u044f, \u0430 \u0433\u043b\u0430\u0434\u0438\u0442\u044c \u0442\u044b \u0443\u043c\u0435\u0435\u0448\u044c?\"<\/big>\r\n\r\n\u041c\u043d\u043e\u0433\u043e \u0441\u043b\u044b\u0448\u0430\u043b \u0438 \u0447\u0438\u0442\u0430\u043b \u043f\u0440\u043e <a href=\"http:\/\/phing.info\/\">phing<\/a>, \u043d\u043e \u043f\u043e\u0449\u0443\u043f\u0430\u0442\u044c \u0434\u043e\u0441\u043a\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u043d\u0435\u0445\u0432\u0430\u0442\u0430\u043b\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u044f. \u0418 \u0432\u043e\u0442 \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u043c\u043e\u0451 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0431\u044b\u043b\u043e \u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u043e (\u0438 \u043d\u0435 \u0437\u0440\u044f) \u043d\u0430 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u0433\u043e \u043c\u043e\u043d\u0441\u0442\u0440\u0430\r\n\r\n\u201c\u041c\u043e\u043d\u0441\u0442\u0440\u043e\u043c\u201d \u044f \u043d\u0430\u0437\u044b\u0432\u0430\u044e phing \u0432 \u201c\u0445\u043e\u0440\u043e\u0448\u0435\u043c\u201d \u0441\u043c\u044b\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 - \u044d\u0442\u043e \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u043a\u0443\u0445\u043e\u043d\u043d\u044b\u0439 \u043a\u043e\u043c\u0431\u0430\u0439\u043d, \u0421\u0412\u0427-\u043f\u0435\u0447\u044c \u0438 \u0441\u0442\u0438\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 \u0432 \u043e\u0434\u043d\u043e\u043c <strike>\u0444\u043b\u0430\u043a\u043e\u043d\u0435<\/strike> \u0430\u0440\u0445\u0438\u0432\u0435.\r\n\r\n\u0427\u0442\u043e \u0436\u0435 \u044d\u0442\u043e \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u0442\u0430\u043a\u043e\u0435?. <a href=\"http:\/\/phing.info\/\">Phing<\/a> \u044d\u0442\u043e <a href=\"http:\/\/ant.apache.org\/\">Ant<\/a> \u0432\u043e\u0441\u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 <a href=\"http:\/\/php.net\/\">php<\/a>. (\u0412\u043e\u043f\u0440\u043e\u0441\u044b \u201c\u0427\u0451 \u044d\u0442\u0430?\u201d \u0438 \u201c\u0430 \u043d\u0430\u0445\u0435\u0440?\u201d \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u0434\u0430\u0442\u044c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u0442\u043e\u0433\u043e \u0438 \u0434\u0440\u0443\u0433\u043e\u0433\u043e, \u0430 \u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0443...).\r\n\r\n\u0422\u0435\u043c \u043a\u0442\u043e \u0437\u043d\u0430\u0435\u0442 \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Ant \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u0435\u0435 \u0432\u0441\u0435\u0433\u043e phing \u043d\u0435 \u043d\u0443\u0436\u0435\u043d,\u0442\u0435\u043c \u043a\u0442\u043e \u043d\u0435 \u0437\u043d\u0430\u0435\u0442, <big>\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442\u0441\u044f<\/big>, \u043c\u043e\u0433\u0443 \u043f\u043e\u0441\u043e\u0432\u0435\u0442\u043e\u0432\u0430\u0442\u044c <a href=\"http:\/\/www.javable.com\/javaworld\/10_00\/03\/\">\u0445\u043e\u0440\u043e\u0448\u0443\u044e \u0432\u0432\u043e\u0434\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e<\/a>, \u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u043e\u043f\u044b\u0442\u0430\u044e\u0441\u044c \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u0432\u043a\u0440\u0430\u0442\u0446\u0435 \u0441\u0443\u0442\u044c \u044f\u0432\u043b\u0435\u043d\u0438\u044f.\r\n\r\n<big>\"\u041d\u043e \u0435\u0441\u0442\u044c \u0441\u043f\u043e\u0441\u043e\u0431 \u043b\u0443\u0447\u0448\u0435!\"<\/big>\r\n\r\n\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0447\u0435\u0433\u043e-\u043b\u0438\u0431\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043d\u0435\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0434\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u043c \u0443\u0442\u043e\u043c\u043b\u044f\u044e\u0442.\r\n\u041a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437  \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 - \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \"\u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0445\" \u0444\u0430\u0439\u043b\u043e\u0432 (\u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u0432\u0441\u0435\u043c\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u043a\u0435\u0448\u0435\u0439, \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u0442.\u043f.), \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439 (\u0440\u0430\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u043f\u0440\u0430\u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u0430), \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 debug-\u043a\u043e\u0434\u0430 \u0438\u0437 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432(\u043c\u0430\u0441\u0441\u043e\u0432\u044b\u0439 search-n-replace \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u043c \u043d\u0430\u0431\u043e\u0440\u0435 \u0444\u0430\u0439\u043b\u043e\u0432), \u043a\u043e\u043c\u043f\u043e\u043d\u043e\u0432\u043a\u0430 \u043a\u0443\u0447\u0438 \u043c\u0435\u043b\u043a\u0438\u0445 \"\u0438\u043d\u043a\u043b\u044e\u0434\u043e\u0432\" \u0432 \u043e\u0431\u0449\u0438\u0439 \u0444\u0430\u0439\u043b  \u0438 \u043c\u043d\u043e\u0433\u043e-\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u043c\u0435\u043b\u043e\u0447\u0435\u0439...\r\n\r\n\u041c\u043e\u0436\u043d\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0432\u0441\u0451 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u201c\u0432\u0440\u0443\u0447\u043d\u0443\u044e\u201d.  \u0410 \u043c\u043e\u0436\u043d\u043e \u0440\u0443\u0442\u0438\u043d\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u043f\u043e\u0440\u0443\u0447\u0438\u0442\u044c \u043c\u0430\u0448\u0438\u043d\u0435. \u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f build-\u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f phing. build-\u0444\u0430\u0439\u043b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 xml-\u043a\u0443 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0443\u043a\u0430\u0437\u0430\u043d \u043f\u0440\u043e\u0435\u043a\u0442 - \u0441\u043e\u0432\u043e\u043a\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u0434\u0430\u0447 (target-\u043e\u0432), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c, \u0430 \u0442\u0430\u043a \u0436\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c (\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c - depends \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u0445 phing) \u0438\u0445 \u0432\u044b\u043f\u043e\u043b\u0435\u043d\u0438\u044f.\r\n<pre class=\"xml:nocontrols\">\r\n&lt;project name=\"make_release\" basedir=\"..\" default=\"build\"&gt;\r\n   &lt;taskdef classname=\"phing.tasks.ext.PhpStripCommentsTask\" name=\"phpstripcomments\" \/&gt;\r\n   &lt;taskdef classname=\"phing.tasks.ext.JsLintTask\" name=\"jslint\" \/&gt;\r\n   &lt;target name=\"clear_cache_dir\"&gt;\r\n       &lt;delete&gt;\r\n          &lt;fileset dir=\"cache\"&gt;\r\n              &lt;include name=\"*\" \/&gt;\r\n          &lt;\/fileset&gt;\r\n      &lt;\/delete&gt;\r\n   &lt;\/target&gt;\r\n   &lt;target name=\"lint_before_strip\"&gt;\r\n      &lt;jslint jslbinary=\"\/usr\/bin\/jslint\" failonerror=\"true\"&gt;\r\n          &lt;fileset dir=\".\"&gt;\r\n              &lt;include name=\"**\/*.js\"\/&gt;\r\n              &lt;exclude name=\"**\/.old_site\/**\" \/&gt;\r\n          &lt;\/fileset&gt;\r\n      &lt;\/jslint&gt;\r\n    &lt;!-- skip --&gt;\r\n    &lt;\/target&gt;\r\n    &lt;!-- ....skip --&gt;\r\n    &lt;target name=\"build\" depends=\"prepare,clear_cache_dir,lint_before_strip,dump_db,copy_src,cleanup_src,remove_debugging,lint_after_strip,simpletests\"&gt;\r\n    &lt;!-- skip --&gt;\r\n        &lt;mail to=\"me@mydomain.tld\" subject=\"build complete\"&gt;\r\n              The build process is a success...\r\n        &lt;\/mail&gt;\r\n    &lt;\/target&gt;\r\n&lt;\/project&gt;\r\n<\/pre>\r\n\u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 phing \u043d\u0430\u0447\u043d\u0451\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c default task (\u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 - build), \u0438 \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0435\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u043e\u043a\u0430 \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u044b depends, \u0442\u043e \u043d\u0430\u0447\u043d\u0451\u0442 \u0438\u0445 \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u043c\u0443 \u043f\u043e\u0440\u044f\u0434\u043a\u0443... \u043d\u0443 \u0438 \u043d\u0430 \u0440\u0430\u0434\u043e\u0441\u0442\u044f\u0445 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442 \u043c\u043d\u0435 \u043f\u0438\u0441\u044c\u043c\u043e (\u0447\u0442\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u043b\u0438\u0448\u043d\u0435\u0435)\r\n\r\n<big>\"\u041d\u043e \u0438 \u044d\u0442\u043e \u0435\u0449\u0451 \u043d\u0435 \u0432\u0441\u0451...\"<\/big>\r\n\u0421\u043f\u0435\u043a\u0442\u0440 \u0437\u0430\u0434\u0430\u0447 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u0440\u0435\u0448\u0430\u0442\u044c phing \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0448\u0438\u0440\u043e\u043a (\u043e\u0442 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0438 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0445 \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0439, \u0434\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0441 svn, simpletest \u0438 phpdoc). \u0414\u043b\u044f \u0442\u0435\u0445 \u043a\u043e\u043c\u0443 <strike>\u0437\u0430\u0437\u043e<\/strike> \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0435\u0441\u0442\u044c \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043b\u043e\u0434\u0438\u0442\u044c task-\u0438 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e - \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0439\u0442\u0435 \u043d\u043e\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u043e\u0442 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e Task \u0438 \u0432\u043f\u0435\u0440\u0451\u0434.\r\n\u041c\u043d\u0435 \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u043b\u043e <a href=\"http:\/\/miracle.rpz.name\/2006\/09\/15\/javascript-lint-and-compress\/\">jslint, jscompress<\/a> \u0438 zndenc - \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u0438\u0445 \u0431\u044b\u043b\u043e <strike>\u0431\u0435\u0441\u0441\u043b\u0435\u0434\u043d\u043e<\/strike> \u0443\u0442\u0440\u0430\u0447\u0435\u043d\u043e \u043c\u0438\u043d\u0443\u0442 15 \u0434\u0440\u0430\u0433\u043e\u0446\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 (\u0430\u0433\u0430 \u0432\u043e\u0442 \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441) \u043e\u0431\u0434\u0443\u043c\u044b\u0432\u0430\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0441\u0430\u043c\u043e\u0433\u043e \u0430\u0446\u0446\u043a\u043e\u0433\u043e \u0442\u0430\u0441\u043a\u0430 - ftpupload (\u0438\u043b\u0438 ftpsync).\r\n\r\n\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 - target-\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u0433\u043e \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443 \u0438 \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442 \u043d\u0435\u043a\u0430\u044f \u043d\u0435\u043f\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043d\u043d\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f(\u0444\u0430\u0439\u043b \u043d\u0435\u043b\u044c\u0437\u044f \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0438\u043b\u0438 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u0430\u043a \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432\u044b\u0448\u0435 \u0432 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c\u043e\u043c \u043a\u043e\u0434\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u0441\u044f \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430) \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u0430\u0440\u0433\u0435\u0442\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0443\u0442, \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0440\u0432\u0430\u043d\u043e exception-\u043e\u043c. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d \u0442\u0435\u043c \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u044d\u0442\u0438\u0445 \u0441\u0430\u043c\u044b\u0445 exception-\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u0435\u043b\u0430\u0442\u044c \"\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u0432\u044b\u0432\u043e\u0434\u044b\" \u043e \u0442\u043e\u043c \u0441\u0442\u043e\u0438\u0442 \u043b\u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0438\u043b\u0438 \u0441\u043c\u0435\u043b\u043e \"to die if necessary...\".\r\n\r\n\u0414\u0440\u0443\u0433\u0430\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c - \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 logger-\u044b - \u043f\u043e\u0442\u043e\u043c\u0443 \u043a\u0430\u043a \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0437\u0430 \u0431\u0443\u0440\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0434\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e phing-\u0430 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043d\u0435 \u0431\u043e\u043b\u044c\u043d\u043e \u0443\u0434\u043e\u0431\u043d\u043e. \u0412  \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430  \u0435\u0441\u0442\u044c AnsiColorLogger, \u043a\u043e\u0442\u043e\u0440\u044b\u0439  \u0441\u043b\u0435\u0433\u043a\u0430  \"\u043f\u0440\u0438\u0443\u043a\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442\" \u0441\u0435\u0440\u044b\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0431\u0443\u0434\u043d\u0438. \u0410 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0439\u0442\u0438 \u0434\u0430\u043b\u044c\u0448\u0435 - \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u043b\u043e\u0433\u0438 \u0432 sqlite \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440.\r\n\r\n<big>\"\u0410 \u0432\u044b \u043f\u043e\u043c\u0435\u043d\u044f\u0435\u0442\u0435 \u0434\u0432\u0435 \u043f\u0430\u0447\u043a\u0438 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u043e\u0448\u043a\u0430 \u043d\u0430 \u043e\u0434\u043d\u0443 \u043f\u0430\u0447\u043a\u0443 \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e?\"<\/big>\r\n\r\n\u0427\u0435\u043c \u0445\u043e\u0440\u043e\u0448 \u0438\u043c\u0435\u043d\u043d\u043e phing - \u043e\u043d \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 php5 - \u044f \u043c\u043e\u0433\u0443 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c, \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0435 \u0444\u0438\u0447\u0438 (<a href=\"http:\/\/ant.apache.org\/\">Ant<\/a> \u043d\u0435\u0441\u043e\u043c\u043d\u0435\u043d\u043d\u043e \u0445\u043e\u0440\u043e\u0448, \u0438\u043c\u0435\u0435\u0442 \u043a\u0443\u0447\u0443 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432, \u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 java, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f <strike>\u0441\u043e\u0432\u0441\u0435\u043c<\/strike> \u043d\u0435 \u0437\u043d\u0430\u044e). \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 <a href=\"http:\/\/www.gnu.org\/software\/make\/\">(g)make<\/a> \u043e\u0442\u043a\u0440\u043e\u0432\u0435\u043d\u043d\u043e \u0431\u0435\u0441\u0438\u0442 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u043e\u043c makefile-\u043e\u0432, <a href=\"http:\/\/www.pake-project.com\/\">pake<\/a> (\u0438\u0434\u0435\u044f \u0432\u0438\u0434\u0438\u043c\u043e \u043d\u0430\u0433\u043b\u043e \u0441\u0442\u044b\u0440\u0435\u043d\u0430 \u0441 <a href=\"http:\/\/rake.rubyforge.org\/\">rake<\/a>)\u0442\u043e\u0436\u0435 \u043d\u0438\u0447\u0435\u0433\u043e <strike>(\u0445\u043e\u0440\u043e\u0448\u0435\u0433\u043e)<\/strike>, \u043d\u043e \u0443\u0436 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043f\u0440\u043e\u0441\u0442 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c \u0435\u0433\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u0443\u0442\u043e\u0440\u043d\u043e :).\r\n\u0422\u043e\u043d\u043d\u0430 \u043c\u0435\u043b\u043a\u0438\u0445 \u0438 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 shell-perl-php-cmd \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u0440\u0430\u043d\u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0441\u0438\u044e\u043c\u0438\u043d\u0443\u0442\u043d\u044b\u0445 \u043d\u0430\u0441\u0443\u0449\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0442\u043e\u0436\u0435 \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u043c \u0437\u0430\u0434\u043e\u043b\u0431\u0430\u043b\u0438.\r\n\u0427\u0435\u043c \u043f\u043b\u043e\u0445 - xml \u043a\u0430\u043a \u0444\u043e\u0440\u043c\u0430\u0442 build-\u0444\u0430\u0439\u043b\u043e\u0432 (\u0445\u043e\u0442\u044f \u043d\u0430 \u0432\u0441\u043a\u0438\u0434\u043a\u0443 \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0442\u044c \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043c\u043e\u0433\u0443, \u043d\u043e \"\u0430\u043b\u043b\u0435\u0440\u0433\u0438\u044f\" \u043d\u0430 xml \u0435\u0449\u0451 \u043d\u0435 \u043f\u0440\u043e\u0448\u043b\u0430) \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d  \u043d\u0430 php5  ;o) - \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0436\u0435\u043b\u0430\u0442\u044c \u043b\u0443\u0447\u0448\u0435\u0433\u043e (18 \u043c\u0438\u043d\u0443\u0442 \u043d\u0430 \u0441\u0431\u043e\u0440\u043a\u0443,\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0438 \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0443 10-\u0442\u0438 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u044d\u0442\u043e \u043c\u043d\u043e\u0433\u043e).\r\n\u041d\u043e \"\u0443\u0434\u043e\u0431\u043d\u043e\u0441\u0442\u044c\" \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u0440\u0435\u0448\u0430\u0435\u0442. \u0422\u0430\u043a \u0447\u0442\u043e:\r\n<blockquote>$&gt; pear channel-discover pear.phing.info$&gt; pear install phing\/phing<\/blockquote>\r\n\u0418 \u0432\u043f\u0435\u0440\u0451\u0434...\r\n\r\nTechnorati Tags: <a href=\"http:\/\/technorati.com\/tag\/dev\" rel=\"tag\">dev<\/a>, <a href=\"http:\/\/technorati.com\/tag\/build\" rel=\"tag\">build<\/a>, <a href=\"http:\/\/technorati.com\/tag\/phing\" rel=\"tag\">phing<\/a>, <a href=\"http:\/\/technorati.com\/tag\/php\" rel=\"tag\">php<\/a>","type":"rich"}