Recentemente sono stato punto da un certo codice rendendolo tramite il nostro ciclo di distribuzione senza gettare qualsiasi errori di compilazione quando si dovrebbe avere (abbiamo pensato) ...compilazione giù una versione - Eclipse, Maven
Il codice in questione essendo utilizzando il nuovo metodo statico Integer.compare
che va da Java 1.7.
L'ambiente del server viene eseguito su Java 1.6. Mentre i nostri ambienti di sviluppo hanno installato Java 1.7.
La nostra ipotesi era che l'impostazione delle preferenze del progetto sulla conformità JavaSE-1.6 avrebbe almeno fornito avvisi di compilazione sul codice in questione, tuttavia in Eclipse non sono visibili avvisi o errori.
Progetto> Proprietà> compilatore java> Compliance JDK> Usa il rispetto da ambiente di esecuzione 'JavaSE-1.6' sul percorso di java accumulo
secondariamente che, usiamo Maven per compilare la distribuzione finale. Il pom è chiaramente diretto a rispettare il compilatore 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>
Tuttavia, la generazione di maven viene eseguita correttamente con il codice problema.
Come posso dire sia a Maven che a Eclipse di fallire quando il codice non funziona in una JVM precedente rispetto a quando viene compilato da?
Grazie, Paul.
Mi ricordo di aver già affrontato situazioni simili prima (ma era 1.5 vs 1.6) ma a quel tempo funziona come quello che ti aspettavi. Dubito che ci sia qualche problema in JDK che lo causa? –