Заметил следующие вещи: 1) сборка выполняется заметно быстрее, если за недолгое до этого время сборка была уже сделана 2) при повторных сборках на рабочем хилом компе(с одним ядром) 2,5 мин вместо 3 мин, что приятно, но не более на новеньком личном макбучеке(с двумя ядрами) 55сек вместо 1 мин, что не очень существенно (но греется и шумит как паровоз) 3) не все плагины позволяют распараллеливаться, обычно это старые плагины, в которых давно не было апдейтов(hibernate3-maven-plugin, maven-jaxb-plugin), правда есть и молодцы которые уже выпустили пара новых минорных релизов с момента поддержки этой фичи(cxf-codegen-plugin), ну и были обнаружены стремящиеся, у которых уже запланировано несколько релизов вперед и планах как раз эта фича(gmaven-plugin) 4) после перевода одного из плагинов на новую threadsafe'ную версию сборка стала делаться на пару секунд дольше
В каким выводам я пришёл: 1) скорее всего надо изучать вопрос как сделать мавеновский проект более подходямщим для параллельной сборки (есть предположение, что нужно мельче дробить проект на модули) 2) надо пробовать на разных тачках и разных настройках 3) надо менять комп на работе:)))
В прошлом году обнаружил такую прекрасную вещь как опции реактора в Maven. Вот замечательная статья от Sonatye про них http://www.sonatype.com/books/mvnref-book/reference/_using_advanced_reactor_options.html Например, помогает собирать только конкретные модули проекта. И всё бы хорошо, да только обламывало, что надо вводить имя проекта в виде groupId:artifactId. И на днях обнаружил, что работает вариант вида :artifactId. В моём случае это существенно укоротило строку запуска мавена.
На работе возникло время, чтобы немного улучшить нашу систему. В качестве точки приложения сил было решено улучшить решение логгирования на одном из томкатов. На этом томкате крутится несколько веб приложений(пара десятков), логи которых пишутся с использованием slf4j и logback, ротейтятся раз в сутки. Также пишутся логи ядра томката, используя стандартное решение.
Хотелось добиться следующего: 1) чтобы логи самостоятельно gzиповались 2) и чтобы количество логов было ограничено
Это бы позволило отказаться от кронов, которые это делают и настраиваются админами.
Для логов приложений использовался общий logback.xml с sift-аппендерами для разделения логов приложений. Из logback.xml был убран атритут prudent=true, который позволяет нескольким JVM писать в один и тот же лог, так как у нас пишет только 1 JVM и prudent настройка не позволяет использовать сжатие. Также для сжатия были добавлены суффиксы .gz для того, чтобы logback самостоятельно сжимал файлы после ротейта. Осталось только следить, чтобы всё было хорошо и правильно.
Далее нужно было что-то решить с логами ядра томката.
Я сразу махнул рукой на дефолтное решение с помощью JULI и перешёл к решению на log4j, предложенное создателями томката: http://tomcat.apache.org/tomcat-7.0-doc/logging.html#Using%20Log4J Сделал, посмотрел, работает, но перейдя к сути понял, что либо сжатие логов и использованием apache-log4j-extras либо ограничение количестс логов в стандартной комплектации log4j. В общем не подходит. Полюркав в инете я обнаружил вот такой красивый проектик на github https://github.com/grgrzybek/tomcat-slf4j-logback, который таки позволяет перести логгирование ядра томката на slf4l и logback. Очень красово сделано, даже есть ANT-скрипт для генерации необходимых бинарников.
Но потом я подумал-это же ж геморой, собирать несколько либ, файлов настроек окружения для старта томката, контроллировать версии библиотек slf4j и logback, и только для того, чтобы обработать логи, которые я никогда не смотрю. И я решил забить, и это оказалось очень просто - удаление файла logging.properties из папки conf томката ведет к тому, что внутренние логи томката не пишутся.
Ну и клёво. Хотя есть ещё catalina.out, в который попадает всё из System.out, но таких логов немного особенно если отключить логгирование состояния памяти в JVM.
И по идее мне оставалось только следить, чтобы логи приложений сжимались и удалялись.
upd 1 К сожалению, через несколько дней после запуска томката с обровленными настройками логи частично перестали сжиматься. И это не круто, потому что никаких ошибок в catalina.out я не увидел. В общем буду делать простенький тест, эмулирующий данную ситуацию, добиваться аналогичных результатов и постить в жиру логбека.
upd 2 Проверил гипотезу с добавлением атрибута , начали сохраняться tmp файлы.
Comments
суки ненавижу