繁体   English   中英

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

[英]Apache tomcat maven plugin compiling on non-existing version of Java

我正在尝试将我的Maven项目与Tomcat服务器8.5集成。 没有集成,一切都会很好。 我在pom.xml中用tomcat7-maven-plugin替换了maven-compiler-plugin并进行了其他配置。 安装完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)

我已将Eclipse中的Installed 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。 compiler:compile目标绑定到默认生命周期compile阶段。 如果要使用版本6以后的高级语言功能,必须始终设置源和目标级别。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM