2014-12-01 4 views
0

Как удалить java System.out.println из скрипта ant? (при компиляции кода из муравьев следует удалить существующий Java класс System.out.println & скомпилированные классы не должны иметь Sys.out.println)Как удалить java System.out.println из ant script

+2

Вы можете выполнить поиск и замену, но я не думаю, что это хороший подход. Лучше преобразовать все постоянные printlns в вызовы журналов, затем вы можете динамически включать и выключать их. – eckes

+0

Ваш вопрос непонятен, если вы хотите удалить println-код с помощью ant или удалить выход из println при запуске ant. Какую операцию вы пытаетесь выполнить? –

+0

В основном у нас есть классы Java, которые содержат много System.out.println (могут быть разработчики добавлены для их отладочных целей), но наше требование состоит в том, что в скомпилированных классах не должно быть никакого sysout, мы создаем наш проект с использованием ANT-скриптов, поэтому, когда ant компилировать java-файлы, необходимые для удаления всех sysout и скомпилированных классов, не должны иметь никакого sysout. в основном, когда классы работают в процессе производства, не следует печатать какие-либо значения, добавленные ранее для целей отладки. – sashikab

ответ

1

В build.xml файл, подготовительном этапе перед MKDIR команды, обеспечивают:

<javac srcdir="exe" includes="SysOutRemove.java"/> 
<java fork="true" classname="SysOutRemove" dir="exe" failonerror="true"/> 

где SysOutRemove.java находится в ехе пакете вашего проекта.

SysOutRemove.java должен перебирать список каталогов и файлов в них, хранить содержимое каждого файла в читателе или что-то в этом роде, находить инструкции sysout и заменять.

1

Мы можем использовать это в файле ant.

<replaceregexp match="System.out.println(.*);" replace="" flags="g" byline="true"> 
 
    <fileset dir="${src.dir}" includes="**/*.java"/> 
 
</replaceregexp>

Смежные вопросы