Maven打包可以指定JDK,请看如下配置:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<properties>
<java-version>1.7</java-version>
<org.springframework-version>3.2.3.RELEASE</org.springframework-version>
<org.aspectj-version>1.6.10</org.aspectj-version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
...
</dependencies>
<build>
<finalName>quartz</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<!-- 指定maven打包JDK -->
<configuration>
<source>${java-version}</source>
<target>${java-version}</target>
<skip>true</skip> <!-- true:跳过测试 -->
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- 指定maven打包目录 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warName>quartz</warName>
<!--注意增加这两行,在打包时相关的类会被独立打成jar -->
<!-- <attachClasses>true</attachClasses>
<classesClassifier>api</classesClassifier> -->
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resource</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
<excludes>
<exclude>**/*.sql</exclude>
</excludes>
<filtering>true</filtering>
</resource>
</resources>
</build>
</project>
注意maven打出的war 包的META-INF下可以查看当前JAVA_HOME的jdk版本:
但是这个并不是编译java文件所使用的jdk,maven使用的是pom文件里指定的JDK来编译java文件。
告诉一个小技巧,可以通过class文件来查看编译所使用的JDK版本,使用editplus打开class文件,以16进制格式查看文件,如下图: