Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache tomcat maven插件在不存在的Java版本上编译_Java_Maven_Javacompiler_Tomcat8.5 - Fatal编程技术网

Apache tomcat maven插件在不存在的Java版本上编译

Apache tomcat maven插件在不存在的Java版本上编译,java,maven,javacompiler,tomcat8.5,Java,Maven,Javacompiler,Tomcat8.5,我正在尝试将我的maven项目与Tomcat server 8.5集成。没有集成,一切正常。我用pom.xml中的tomcat7 maven插件替换了maven编译器插件,并进行了其他配置。在mvn安装、mvn清理安装和mvn tomcat7:deploy之后,一切都失败了,只有以下例外 TestServiceCSV.java:[345,48] strings in switch are not supported in -source 1.5 (use -source 7 or highe

我正在尝试将我的maven项目与Tomcat server 8.5集成。没有集成,一切正常。我用pom.xml中的tomcat7 maven插件替换了maven编译器插件,并进行了其他配置。在mvn安装、mvn清理安装和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)
显然,编译是使用Java1.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)
我已经将Eclipse中安装的JRE设置为JDK。我的项目的构建路径也反映了同样的情况

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

>echo $JAVA_HOME
C:\Program Files\Java\jdk1.8.0_144
Tomcat版本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而不是实际版本上执行的?

编译器插件的版本是1.5。编译器:编译目标绑定到的编译阶段。如果您想使用第6版以后的高级语言功能,您必须始终设置级别。

Tomcat 8.5.23版。我用tomcat7 maven插件替换了maven编译器插件-不要。您已经删除了pom.xml中告诉Maven要使用哪个版本的Java的部分。为什么你认为你需要替换编译器插件而不是仅仅添加tomcat插件?谢谢,它成功了!