Недавно меня ужалил какой-то код, проходящий через наш цикл развертывания без каких-либо ошибок компиляции, когда он должен был (мы думали) ...
В рассматриваемом коде используется новый статический метод Integer.compare
начиная с Java 1.7.
Серверная среда работает на Java 1.6.Хотя в наших средах разработки установлена Java 1.7.
Мы предполагали, что установка параметров проекта на соответствие JavaSE-1.6 по крайней мере даст нам предупреждения о компиляции в рассматриваемом коде, однако в затмении не будет ни предупреждений, ни ошибок..
Project> properties> java compiler> JDK Compliance> Использовать соответствие из среды выполнения 'JavaSE-1.6' на пути сборки java
Во-вторых, мы используем maven для компиляции окончательного развертывания,Pom четко ориентирован на соответствие компилятору 1.6:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<optimize>true</optimize>
</configuration>
</plugin>
Однако сборка maven успешно выполняется с кодом проблемы.
Как я могу сказать, что maven и eclipse не работают, когда кодне будет работать в более ранней версии Jvm, чем она компилируется?
Спасибо, Пол.