Настройки компилятора Maven для Java 10 и выше - PullRequest
0 голосов
/ 09 марта 2020

Я устанавливаю версию компилятора в файле maven pom. xml, например, так:

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

Какую версию я устанавливаю для Java 10 и выше? Похоже, Лиже 10 или 1.10 не будет работать. Изменены ли теги для Java 10 и выше?

public static void main(String[] args)
{
   try (var in = new Scanner(System.in))
   {
      System.out.print("Enter n: ");
      int n = in.nextInt();
      factorial(n);
   }
}

Компилятор жалуется, что не может разрешить символ var, несмотря на установку версии в 10 или 1.10.

Ответы [ 2 ]

2 голосов
/ 09 марта 2020

Вот полезная ссылка: http://tutorials.jenkov.com/maven/java-compiler.html

Для Java 8 или более ранней версии используйте:

<properties>
      <maven.compiler.target>1.8</maven.compiler.target>
      <maven.compiler.source>1.8</maven.compiler.source>
  </properties>

Для Java 9 или более поздней версии , используйте:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
    <configuration>
        <release>11</release>
    </configuration>
</plugin>
0 голосов
/ 09 марта 2020

Официальная документация javac предоставляет информацию:
https://docs.oracle.com/javase/10/tools/javac.htm#JSWOR627

Значение 10, но вы также можете просто указать release javac флаг из свойства maven maven.compiler.release:

<properties>
    <maven.compiler.release>10</maven.compiler.release>
</properties>

--release release

Компилируется для публикуемого c, поддерживаемого и документированного API для Speci c Версия VM.

Поддерживаемые цели выпуска: 6, 7, 8, 9, и 10.

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