Proyecto IntelliJ Imports de POM usando la versión de JDK incorrecta -- java campo con android campo con maven campo con intellij-idea camp Relacionados El problema

IntelliJ imports project from POM using wrong JDK version


6
vote

problema

Español

Tenemos una construcción de Android basada en Maven, y acabamos de hacer el cambio de JDK 6 a 7.

Esto vino con su parte de los problemas de Intellij. Lo que sucede es que cada vez que detecta un cambio en el POM, y reimporta / actualiza el proyecto, vuelve a seleccionar el antiguo "Módulo SDK", el que está configurado para usar Java 6:

ingrese la descripción de la imagen aquí

Incluso si me elimina manualmente estos SDK desde el cuadro de diálogo "Configuración de la plataforma", continúan reapareciendo como "API 19 plataforma (N)" de Maven Android (N) "donde N es el número que se usa para desamblarlo de todas las otras SDK (idénticas).

Debería mencionar que sí especificamos en el POM que Java 7 está dirigido. Intenté configurar tanto el nivel de idioma del complemento del compilador, y las propiedades .fxml8 (no están seguros de si lo logra lo mismo o no), sin suerte:

  <plugin>   <groupId>org.apache.maven.plugins</groupId>   <artifactId>maven-compiler-plugin</artifactId>   <version>3.1</version>   <configuration>     <source>1.7</source>     <target>1.7</target>   </configuration> </plugin>   

¿No debería intelliJ elegir eso y siempre configurar el proyecto para usar un SDK de Java 7? ¿Me estoy perdiendo algo?

Noté que el problema desaparece cuando elimino cualquier referencia a 1.6 sdcas completamente en IntelliJ. No es sorprendente, supongo, pero tampoco viable ya que tengo otros proyectos que aún dependen de la presencia de un SDK de Java 6.

Original en ingles

We have a Maven based Android build, and we just made the switch from JDK 6 to 7.

This came with its share of IntelliJ problems though. What happens is that every time it detects a change in the POM, and reimports/refreshes the project, it returns to selecting the old "Module SDK", the one that's configured to use Java 6:

enter image description here

Even if I manually delete these SDKs from the "Platform Settings" dialog, they keep reappearing as "Maven Android API 19 Platform (N)" where N is the number used to disambiguate it from all the other (identical) SDKs.

I should mention that we do specify in the POM that Java 7 is targeted. I tried to set both the compiler plugin language level, and the maven.compiler.* properties (not sure if that accomplishes the same thing or not), without luck:

<plugin>   <groupId>org.apache.maven.plugins</groupId>   <artifactId>maven-compiler-plugin</artifactId>   <version>3.1</version>   <configuration>     <source>1.7</source>     <target>1.7</target>   </configuration> </plugin> 

shouldn't IntelliJ pick that up and always configure the project to use a Java 7 SDK? Am I missing something?

I noticed that the problem disappears when I remove any references to 1.6 SDKs entirely in IntelliJ. Not surprising I guess, but also not viable since I have other projects that still rely on the presence of a Java 6 SDK.

           

Lista de respuestas

4
 
vote

Me encontré con un problema muy similar con los proyectos de Maven que había creado usando IntelliJ (versión 14.x en mi caso). Configuré a IntelliJ que usaría JDK 8 en la configuración del proyecto, pero el IDE continuó destacando los problemas en mi código (por ejemplo, que se quejan sobre el uso de @Override ).

Resulta que la configuración de Maven tiene prioridad aquí, que en mi caso se incumplió a JDK 1.5 (de ahí que los IDE REDLINES). Cambiar la configuración aquí resuelve el problema, pero solo temporalmente porque revertidos cuando los proyectos de Maven se reimportan o cuando se reinicia IntelliJ.

La solución permanente es declarada explícitamente la versión JDK en su archivo Maven Pom , como se explica en estos artículos.

detener la idea de IntelliJ para cambiar el nivel de idioma Java cada vez que el POM está recargado (o cambie el nivel de idioma predeterminado del proyecto) por @vikingsteve

Idea: Javac : La versión de origen 1.7 requiere la versión de destino 1.7 por @bacchus

Esto es lo que han dicho que necesita para agregar a su archivo POM.XML.

  <build>     <plugins>         <plugin>             <artifactId>maven-compiler-plugin</artifactId>             <configuration>                 <source>1.8</source>                 <target>1.8</target>             </configuration>         </plugin>     </plugins> </build>   

Estas configuraciones se reflejan en la configuración de Maven en el IDE y resuelven el problema para mí.

 

I encountered a very similar issue with Maven projects I'd created using IntelliJ (version 14.x in my case). I'd configured IntelliJ to use JDK 8 in the Project Settings but the IDE continued to highlight issues in my code (e.g. complaining about the usage of @Override).

It turns out that the Maven Settings take precedence here, which in my case defaulted to JDK 1.5 (hence the IDE redlines). Changing the settings here does resolve the issue, but only temporarily because they revert back whenever the Maven projects are reimported, or when IntelliJ is restarted.

The permanent fix is to explicitly declared the JDK version in your Maven pom file, as explained in these items.

stop IntelliJ IDEA to switch java language level everytime the pom is reloaded (or change the default project language level) by @vikingsteve

IDEA: javac: source release 1.7 requires target release 1.7 by @bacchus

Here's what they've said you need to add to your pom.xml file.

<build>     <plugins>         <plugin>             <artifactId>maven-compiler-plugin</artifactId>             <configuration>                 <source>1.8</source>                 <target>1.8</target>             </configuration>         </plugin>     </plugins> </build> 

These settings get reflected in the Maven Settings in the IDE and resolved the issue for me.

 
 
1
 
vote

Recogerá el JDK que elija en la estructura del proyecto, por favor cambie allí.

Archivo & gt; Estructura del proyecto & GT; Configuración del proyecto & GT; proyecto & gt; Proyecto SDK Elija 1.7.

Si 1.7 no está presente ve a Archivo & gt; Estructura del proyecto & GT; Configuración de la plataforma y GT; SDKS Addd 1.7 allí.

 

It will pick up the jdk that you choose in project structure please change it there.

File > project structure > project setting > project > project sdk choose 1.7.

If 1.7 is not present go to File > project structure > Platform setting > SDKs addd 1.7 there.

 
 
         
         
0
 
vote

También es importante tener en cuenta que necesita cambiar el corredor (nivel JDK) de su Maven.

maven & gt; corredor & gt; jre

 

It's also important to note that you need to change the runner (jdk level) of your maven.

Maven > Runner > JRE

 
 

Relacionados problema

44  No puedo conseguir que Intellij reconozca mi SDK de Android  ( I cant get intellij to recognise my android sdk ) 
Estoy tratando de hacer programas de Android usando IntelliJ. Desafortunadamente, no puedo conseguir que el SDK de Android sea reconocido en IntelliJ. (I.E. E...

23  ¿Por qué Hibernate Query ha compilado un error en Intellij?  ( Why does hibernate query have compile error in intellij ) 
Tengo este código de hibernación: Query q = session.createQuery("from MyTable where status = :status"); compila y funciona bien ... Pero en IntelliJ,...

13  ¿Es posible establecer pruebas para ejecutar continuamente en el estudio Android?  ( Is it possible to set tests to continuously run on android studio ) 
Me gustaría saber si es posible realizar pruebas continuas en el estudio Android. He encontrado la herramienta infinita para Eclipse / Intellij, pero no pudo ...

3  Gwt + intellij idea 9  ( Gwt intellij idea 9 ) 
Versión comunitaria de Intellij Idea 9.0 y ahora quiero crear una aplicación GWT en él, pero no estoy obteniendo esa opción GWT mientras creas el proyecto. ...

8  Android Hello World en IntelliJ 12 - No se puede encontrar Android.App.activity Class  ( Android hello world in intellij 12 cannot find android app activity class ) 
Por favor, vea a continuación. Tengo la sensación de que tengo la SDKS configurada incorrectamente, pero no estoy seguro de cómo resolverlo. Intenté googling ...

67  Visual Studio Resharper Keymap para IDEA INTELLIJ  ( Visual studio resharper keymap for intellij idea ) 
Utilizo principalmente Visual Studio y RESHARPER (R #) para el desarrollo y tiene un excelente conocimiento de trabajo de R #. Quiero aprovechar ese conocimie...

4  Abrir archivo sin ratón, idea intelije 8.1  ( Open file without mouse intellij idea 8 1 ) 
¿Hay alguna manera fácil de abrir un archivo (que no está en el proyecto) con el teclado solamente? ...

2  Play 2.0 (.2) Intellij Mac OS X Play-específico marcado como error (rojo)  ( Play 2 0 2 intellij mac os x play specific marked as error red ) 
Estoy usando la versión actual de Intellij-versión 11.1.x (¡y (!) ¡Lo intentó con la versión actual EAP 12.0! Comenzó tanto a WIE 32 y 64 bits), que se ejecut...

8  ¿Cómo decirle a Intellij Idea que actualice mis clases y recursos en una aplicación GRAILS?  ( How to tell intellij idea to refresh my classes and resources in a grails app ) 
configuración: Tengo un proyecto GRILS en IDEA INTELLIJ. Corro la aplicación haciendo clic en el botón "Reproducir" arriba arriba donde tengo una configurac...

2  Utilice IntelliJ como la herramienta de combinación predeterminada para TORTOISEHG / MERCURAL  ( Use intellij as the default merge tool for tortoisehg mercurial ) 
Utilizaría HG4IDEA para hacer esto, pero parece que fugas la memoria mal. ¿Hay alguna manera de usar IntelliJ 9 como la herramienta de combinación predetermin...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos