2015-10-29 15 views
9

Per un progetto al momento in cui sto lavorando, IntelliJ mi ha fornito l'errore di compilazione Error:java: javacTask: source release 8 requires target release 1.8. Sono entrato in Impostazioni> Build, Execution, Deployment> Compiler> Java e ho visto che la versione bytecode di destinazione per uno dei miei moduli era impostata su 1.5, quindi l'ho modificata in 1.8, compilata e funzionava. Ma poi il giorno dopo, ho avuto lo stesso errore. Sono andato in impostazioni e il bytecode di destinazione per quel modulo era tornato a 1.5. L'ho cambiato in 1.8 e compilato/eseguito bene. Questo è successo più volte e sono frustrato dal numero di volte che devo passare alle impostazioni per modificare manualmente la versione bytecode di destinazione.IntelliJ target bytecode che ripristina

Perché la versione bytecode di destinazione continua a tornare? Non ho 1.5 specificato nel pom o altrove, quindi sono sconcertato sul motivo per cui la versione bytecode continua a essere impostata su 1.5.

+0

'sconcertato' è esattamente come mi sentivo. –

risposta

6

La risposta accettata è corretta, nel senso che è necessario specificare le versioni origine e di destinazione nel file pom.xml, ma dal momento che il maven-compiler-plugin è aggiunto per impostazione predefinita, un modo più semplice per farlo sarebbe quello di impostare le seguenti proprietà:

<properties> 
    <maven.compiler.source>1.8</maven.compiler.source> 
    <maven.compiler.target>1.8</maven.compiler.target> 
</properties> 
+1

Questa dovrebbe essere la risposta accettata – RedShift

8

È necessario dd questo al vostro POM:

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.3</version> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build>