我在构建时收到警告消息!
警告:[options] bootstrap类路径未与-source 1.5一起设置
我该如何解决?
尝试针对java 1.7编译我的应用程序我发现在javax.sql.CommonDataSource中添加了一个新方法(在jsDataSource中也是如此) - .getParentLogger().您可以将CommonDataSource:1.7与CommonDataSource进行比较:1.6
对我来说,这种变化肯定会破坏向后兼容 例如,我的应用程序(包含DataSource的实现)甚至不会在没有代码更改的情况下针对1.7进行编译.
根据我的观点,这应该是非常有力的理由 - 但我不能google甚至一个.有人可以解释这种变化背后的原因吗?应该如何处理它 - 对我而言,这是我第一次遇到与java的向后不兼容,所以我这里没有任何"最佳实践"......
POM包含(如/sf/answers/1567929891/中所述):
<profile>
<id>compileWithJava5</id>
<!--
NOTE
Make sure to set the environment variable JAVA5_HOME
to your JDK 1.5 HOME when using this profile.
-->
<properties>
<java.5.home>${env.JAVA5_HOME}</java.5.home>
<java.5.libs>${java.5.home}/jre/lib</java.5.libs>
<java.5.bootclasspath>${java.5.libs}/rt.jar${path.separator}${java.5.libs}/jce.jar</java.5.bootclasspath>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<compilerArguments>
<bootclasspath>${java.5.bootclasspath}</bootclasspath>
</compilerArguments>
</configuration>
</plugin>
</plugins>
</build>
</profile>
Run Code Online (Sandbox Code Playgroud)
$JAVA5_HOME 设置:
• echo $JAVA5_HOME
/usr/lib/jvm/jdk1.5.0_22
Run Code Online (Sandbox Code Playgroud)
据我所知,Java + Maven的神奇之处在于,它应该是maven-compiler-plugin指示JDK 1.8伪装成JDK 1.5并使用Java 5引导类路径的有效咒语.
根据为什么javac在@Override注释上失败,JDK 1.5将不允许接口的已 …