Плагин Apache tomcat maven компилируется на несуществующей версии Java

Я пытаюсь интегрировать свой проект maven с сервером Tomcat 8.5. Без интеграции все работает нормально. Я заменил maven-compiler-plugin на tomcat7-maven-plugin в pom.xml и выполнил другие настройки. После этой установки mvn, mvn clean install и mvn tomcat7:deploy все терпит неудачу за исключением ниже.

TestServiceCSV.java:[345,48] strings in switch are not supported in -source 1.5
  (use -source 7 or higher to enable strings in switch)

    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213)

Итак, очевидно, что компиляция выполняется с использованием java 1.5, тогда как моя версия jdk — 1.8.0_144. Дополнительные сведения ниже:

>mvn -version
Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T02:58:13-05:00)
Maven home: C:\Maven\apache-maven-3.5.2\bin\..
Java version: 1.8.0_144, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_144\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

>java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

Я установил установленную JRE в Eclipse как JDK. Также путь сборки для моего проекта отражает то же самое.

>echo $MAVEN_HOME
C:\Maven\apache-maven-3.5.2

>echo $JAVA_HOME
C:\Program Files\Java\jdk1.8.0_144

Томкат версии 8.5.23

Запись POM.xml

<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>  
<url>http://localhost:8080/manager/html</url>  
<server>TomcatServer</server>    
<username>admin</username>  
<password>xxxx</password>   
</configuration>
</plugin>

Почему компиляция может выполняться на 1.5, а не на актуальной версии?


person Patz    schedule 14.11.2017    source источник
comment
Томкат версии 8.5.23.   -  person Patz    schedule 14.11.2017
comment
Я заменил maven-compiler-plugin на tomcat7-maven-plugin - не делайте этого. Вы удалили раздел pom.xml, который сообщал Maven, какую версию Java использовать. Почему вы решили, что вам нужно заменить плагин компилятора, а не просто добавить плагин tomcat?   -  person Boris the Spider    schedule 14.11.2017
comment
Спасибо, это сработало!   -  person Patz    schedule 17.11.2017


Ответы (1)


Уровень исходного кода по умолчанию подключаемого модуля компилятора – 1.5. Цель compiler:compile привязана к этапу compile жизненный цикл по умолчанию. Вы всегда должны устанавливать исходного и целевого уровней, если вы хотите использовать расширенные функции языка, начиная с версии 6.

person palek    schedule 14.11.2017