Скомпилированный java-класс или jar предназначен для одной версии JVM (например, через javac -target
или <target>1.x</target>
для плагина компилятора Maven).Если проект нацелен на одну версию JVM, но зависит от других классов, созданных с более ранней целевой версией, могут ли быть какие-либо потенциальные проблемы?
Я знаю о незначительных несовместимостях с запущенными классами, нацеленными на более старые JVM на более новых JVM,например, http://www.oracle.com/technetwork/java/javase/8-compatibility-guide-2156366.html#A999198. Но давайте предположим, что каждый класс сам по себе не имеет несовместимости с новой JVM.
Я обнаружил, что часто делаю это, не задумываясь (я никогда не использовал плагин Maven Enforcer http://maven.apache.org/enforcer/maven-enforcer-plugin/),, поэтому я бы хотел больше знать о проблемах, которые могут возникнуть.