Как выяснить, какая опция Xlint соответствует предупреждению компилятора? - PullRequest
0 голосов
/ 07 декабря 2018

В моих сборках программного обеспечения используется -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?

UPDATE : я использую Maven 3.6.0, maven-compiler-plugin 3.8.0, JDK 11.0.1

Ответы [ 2 ]

0 голосов
/ 08 декабря 2018

Алан Бейтман указал мне правильное направление.Похоже, что maven-compiler-plugin подавляет жизненно важную информацию.Вот вывод из javac 11.0.1:

C:\Users\Gili\Documents\requirements\java\src\main\java\module-info.java:16: warning: [module] module not found: org.bitbucket.cowwoc.requirements.guava
        exports org.bitbucket.cowwoc.requirements.java.internal.impl to org.bitbucket.cowwoc.requirements.guava;

Вот соответствующий вывод из maven-compiler-plugin:

[WARNING] /C:/Users/Gili/Documents/requirements/java/src/main/java/module-info.java:[16,106] module not found: org.bitbucket.cowwoc.requirements.guava

javac упоминает [module] в началепредупреждения, указывающего, что -Xlint:-module подавит это предупреждение.

Я отправил сообщение об ошибке здесь: https://issues.apache.org/jira/browse/MCOMPILER-367

0 голосов
/ 08 декабря 2018

Один из способов сделать это, если каким-то образом вы не можете получить доступ к онлайн-документации , можно использовать команду

javac --help-extra

. Здесь будут перечислены возможные предупреждения, которые выможет включить / отключить.Например, из javac 12-ea:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...