Мои сборки программного обеспечения используют -Xlint -Werror
, поэтому я регулярно сталкиваюсь с предупреждениями компилятора, которые нарушают мою сборку. Время от времени я сталкиваюсь с предупреждением, которое мне нужно подавить, но всегда трудно понять, какой Xlint
параметр подавляет предупреждение, которое я вижу.
Приведу конкретный пример. Недавно наткнулся:
[WARNING] module-info.java:[16,106] module not found:
org.bitbucket.cowwoc.requirements.guava
Я просмотрел исходный код JDK 11 и обнаружил это предупреждающее сообщение, объявленное в /src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties
как:
# 0: symbol
compiler.err.module.not.found=\
module not found: {0}
Теперь выясняется, что это подавляется -Xlint:-module
, но это не очевидно из документации. -Xlint:-export
тоже может иметь смысл. В прошлом я также сталкивался с предупреждениями, которые вообще нельзя было подавить (впоследствии они были исправлены).
Вместо того чтобы прибегать к методам проб и ошибок, существует ли детерминированный способ выяснить, какой Xlint
параметр соответствует каждому предупреждающему сообщению? Есть ли где-то в исходных кодах JDK какой-то файл сопоставления?
ОБНОВЛЕНИЕ: я использую Maven 3.6.0, maven-compiler-plugin 3.8.0, JDK 11.0.1