Maven 3: Как исключить сгенерированные источники из проверки Xlint?

Мы разрешаем только исходный код Java без ошибок Xlint.Однако, когда источники генерируются сторонними инструментами, это не практично.Примеры сгенерированных источников в нашем примере использования: JFlex, JavaCC, JAXB и процессоры аннотаций.Итак, вопрос: как исключить сгенерированные источники из проверок Xlint?(см. текущую конфигурацию ниже)
4 голоса | спросил rmuller 12 +03002016-10-12T12:05:18+03:00312016bEurope/MoscowWed, 12 Oct 2016 12:05:18 +0300 2016, 12:05:18

1 ответ


0
Для этого нет прямой конфигурации в ---- +: = 0 =: + ---- .Передаваемые параметры предназначены для всего выполнения, поэтому передача ---- +: = 1 =: + ---- будет применяться ко всем источникам для компиляции.Решение здесь состоит в том, чтобы скомпилировать его за два прохода: первый проход скомпилирует сгенерированные источники без какой-либо проверки lint, а второй проход скомпилирует источники вашего проекта (это может зависеть от сгенерированных классов).Опять же, плагин компилятора не предлагает способ указания пути к источникам для компиляции: он компилирует все источники текущего проекта Maven.У вас есть 2 решения: использовать 2 исполнения плагина компилятора с включением /исключением или разбить его на 2 модуля.Включить /ИсключитьИдея состоит в том, чтобы иметь 2 исполнения: одно, которое будет ---- +: = 2 =: + ---- ваши основные классы (и скомпилировать сгенерированные), тогда как другое выполнение будет ---- +: = 3=: + ---- их.Обратите внимание, что механизм включения /исключения работает с полностью определенным именем классов, а не со структурой каталогов;так что вы не можете исключить ---- +: = 4 =: + ---- .Предполагая, что все ваши основные исходные файлы Java находятся в пакете ---- +: = 5 =: + ---- , вы можете иметь:Это работает, потому что первое выполнение переопределяет выполнение ---- +: = 7 =: + ----, которое Maven запускает автоматически в фазе ---- +: = 8 =: + ---- , поэтомуубедитесь, что сгенерированные классы компилируются первыми.Используя два модуляТаким образом, вам нужно разделить это на 2 модуля, где первый модуль будет генерировать источники и компилировать их, в то время как второй модуль будет зависеть от первого.Создайте многомодульный проект Maven и создайте родительский файл ---- +: = 9 =: + ---- с двумя модулями :Вы можете добавить блок ---- +: = 11 =: + ----, чтобы определить конфигурацию по умолчанию для всех модулей, использующих его, например, ---- +: = 12 =: + ---- и ---- +: = 13 =: + ---- .Первый модуль ---- +: = 14 =: + ---- отвечает за генерацию и компиляцию исходных текстов без какой-либо проверки.По умолчанию ---- +: = 15 =: + ---- - это ---- +: = 16 =: + ----, чтобы вы могли сохранить конфигурацию по умолчанию.Затем, во втором модуле, вы можете иметь зависимость от этого первого, добавив проверку lint.Так как это скомпилирует только исходные файлы вашего проекта (сгенерированные классы уже скомпилированы и упакованы в другом модуле), у вас не будет никаких предупреждений для них.
ответил Tunaki 12 +03002016-10-12T12:33:57+03:00312016bEurope/MoscowWed, 12 Oct 2016 12:33:57 +0300 2016, 12:33:57

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132