Maven имеет профилей , которые позволяют настроить процесс сборки (например, путем переопределения настроек плагина).Они могут быть либо явно выбраны при запуске сборки Maven, либо автоматически активированы в зависимости от настроек среды.
Я не знаю ни одного действительно успешного препроцессора для Java, который можно было бы рекомендовать.В большинстве случаев, кроме утверждений, проверки времени выполнения, как правило, заменяют номер один #ifdefs.
Моим личным оружием выбора для обработки функций отладки / выпуска во время компиляции является сочетание обработки аннотаций ( краткое введение здесь ) и аспектно-ориентированного программирования ( Spring)AOP intro ).