Настройте gradle для использования совместного использования данных классов в Java 11

#java #gradle #java-11

#java #gradle #java-11

Вопрос:

Я пытаюсь добавить:

 compileJava {
//disable compilation in a separate daemon process...should be faster?
options.fork = false
options.compilerArgs << '-Xshare:on'
}
  

но я получаю

 Cause: error: invalid flag: -Xshare:on
  

Я МОГУ добавить

 org.gradle.jvmargs=-Xshare:on
  

в gradle.properties, чтобы заставить демона использовать CDS (я полагаю, во всяком случае).

Есть ли способ заставить Gradle / java 11 использовать CDS повсюду?

Под всем я подразумеваю не только для демона, но и для компилятора?

Я также пытался:

 compileJava.options.fork=true
compileJava.options.forkOptions.jvmArgs << '-Xshare:on'
  

Но это тоже никуда меня не приведет (и, я думаю, будет медленнее из-за накладных расходов на вилку … уничтожая любое преимущество в скорости, которое могут предоставить компакт-диски?)

Комментарии:

1. Вы также можете попробовать gradle forums для этого вопроса.

2. Не включен ли CDS автоматически в соответствии с документами? docs.oracle.com/en/java/javase/11/vm /…

3. @tkruse: похоже, это правда, но архив создается только в том случае, если вы используете установщик. хммм. В приведенной вами ссылке прямо указано, что НЕ следует использовать -Xshare:on в рабочей среде. Спасибо, что просветили меня!