#java #gradle #javac #java-11 #nashorn
#java #gradle #javac #java-11 #nashorn
Вопрос:
Недавно я обновился до 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:
Предупреждение, которое вы видите, выдается компилятором, --no-deprecation-warning
единственное подавляет предупреждение времени выполнения "Warning: Nashorn engine is planned to be removed from a future JDK release"
, которое выдается при создании экземпляра скриптового движка.
Вы должны уметь использовать:
@SuppressWarnings("removal")
NashornScriptEngineFactory factory = new NashornScriptEngineFactory();
В исходном коде, чтобы полностью подавить предупреждение.
Или иным образом использовать:
-Xlint:-removal
В качестве аргумента компилятора. Это приведет к подавлению предупреждений, но вы все равно получите примечание для каждого файла.