как спрятать java 11 предупреждения об устаревании Nashorn - PullRequest
2 голосов
/ 12 апреля 2019

Я недавно обновился до Java11.Есть 150 новых предупреждений об устаревании Nashorn:

Utils.java:31: warning: [removal] NashornScriptEngineFactory in jdk.nashorn.api.scripting has been deprecated and marked for removal
            NashornScriptEngineFactory  factory = new NashornScriptEngineFactory();

Можно ли скрыть эти предупреждения об устаревании?

Что я пробовал:

tasks.withType(JavaCompile) {
    options.compilerArgs += '-Xlint:-deprecation'
}

./gradlew build -Dnashorn.option.no.deprecation.warning=true

gradle-wrapper.properties: org.gradle.jvmargs= -Dnashorn.args=--no-deprecation-warning

, а также

NashornScriptEngineFactory  factory = new NashornScriptEngineFactory();
ENGINE = factory.getScriptEngine(new String[] {"--no-java --no-deprecation-warning"}, null, className -> false);

Я полагаю, JDK-8210140 может указывать на аналогичную проблему.

1 Ответ

3 голосов
/ 12 апреля 2019

Предупреждение, которое вы видите, отправляется компилятором, --no-deprecation-warning подавляет только предупреждение "Warning: Nashorn engine is planned to be removed from a future JDK release" времени выполнения, которое выдается при создании экземпляра обработчика сценариев.

Вы должны быть в состоянии использовать:

@SuppressWarnings("removal")
NashornScriptEngineFactory factory = new NashornScriptEngineFactory();

В исходном коде полностью подавить предупреждение.

Или использовать иначе:

-Xlint:-removal

В качестве аргумента компилятора. Это подавит предупреждения, но вы все равно получите заметку для каждого файла.

...