How do I update the Maven configuration in Eclipse Luna? - java

I am using Java 8 for my JRE in Eclipse Luna with with the m2e Maven plugin. I see this warning as soon as I create a Maven project: Build path specifies execution environment J2SE-1.5. There are no JREs installed in the workspace that are strictly compatible with this environment. I see lots of older advice on this site on how to deal with this error, but nothing related to Java 8. I also that Oracle says J2SE was deprecated in 2008. The most promising answer I have found thus far comes from #Pascal Thivent here:
Warning - Build path specifies execution environment J2SE-1.4
But these instructions no longer seem to be relevant for Luna:
Eclipse project Properties > Maven > Update Project Configuration
I only see "Lifecycle mapping" under Maven.
Can someone please explain (1) what this error means (2) if it is still a worry, given that J2SE-1.5 seems to have been deprecated (3) how to best fix it in Luna?

This error is because the project pom file is instructing maven to compile against java 1.5.
It is best to compile and test to a current java version. In your case java 8.
I am unsure how to fix it inside the eclipse IDE, but the project pom file can be edited to include the compile version as follows:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>

Related

JavaFx Project not be able to build after downgrade to jdk11 [duplicate]

When running a JUnit test, using IntelliJ IDEA, I get
How can I correct this?
Using SDK 1.7
Module language level is 1.7
Maven build works fine. (That's why I believe this in IDEA configuration issue)
Most likely you have incorrect compiler options imported from Maven here:
Also check project and module bytecode (target) version settings outlined on the screenshot.
Other places where the source language level is configured:
Project Structure | Project
Project Structure | Modules (check every module) | Sources
Maven default language level is 1.5 (5.0), you will see this version as the Module language level on the screenshot above.
This can be changed using maven-compiler-plugin configuration inside pom.xml:
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
[...]
</build>
[...]
</project>
or
<project>
[...]
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
[...]
</project>
IntelliJ IDEA will respect this setting after you Reimport the Maven project in the Maven Projects tool window:
IntelliJ 15, 2016 & 2017
Similar to that discussed below for IntelliJ 13 & 14, but with an extra level in the Settings/Preferences panel: Settings > Build, Execution, Deployment > Compiler > Java Compiler.
IntelliJ 13 & 14
In IntelliJ 13 and 14, check the Settings > Compiler > Java Compiler UI to ensure you're not targeting a different bytecode version in your module.
In IntelliJ IDEA 14.1 the "Target bytecode version" is in a different place.
The following change worked for me:
File > Settings... > Build, Execution, Deployment > Compiler > Java Compiler : change Target bytecode version from 1.5 to 1.8
Have you looked at your build configuration it should like that if you use maven 3 and JDK 7
<build>
<finalName>SpringApp</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
...
</plugins>
...
</build>
I ran into this and the fix was to go to Project Settings > Modules > click on the particular module > Dependencies tab. I noticed the Module SDK was still set on 1.6, I changed it to 1.7 and it worked.
I've found required options ('target bytecode version') in settings > compiler > java compiler in my case (intelij idea 12.1.3)
Modify the compiler setting file of the project in the following path and change the 'target' to 1.7:
/project/.idea/compiler.xml
<bytecodeTargetLevel>
<module name="project-name" target="1.7" />
</bytecodeTargetLevel>
I resolved it by setting the field blank:
Settings > Compiler > Java Compiler > Project bytecode version
Than IntelliJ uses the JDK default version.
From one moment to the other I also got this error without a clear reason. I changed all kinds of settings on the compiler/module etc. But in the end I just recreated the IntelliJ project by reimporting the Maven project and the issue was solved. I think this is a bug.
IntelliJ 12 129.961
I've hit this after just minor upgrade from IntelliJ IDEA 14 to v14.1.
For me changing an edit of top/parent pom helped and then clicked re-import Maven (if it is not automatic).
But it maybe just enough to Right Click on module(s)/aggregated/parent module and Maven -> Reimport.
I resolved bellow method
File >> Project Structure >> Project >> Project Language Level
--> do set proper version (ex: 1.5)
check
.idea/misc.xml
sometimes you need to change languageLevel="JDK_1_X" attribute manually
If it is a Gradle project, in your build.gradle file, search for following settings:
sourceCompatibility = "xx"
targetCompatibility = "xx"
For all subrpojects, in your root build.gradle file, you may put:
subprojects { project ->
sourceCompatibility = "1.7"
targetCompatibility = "1.7"
}
Although you can manually set language levels in Idea > Settings, if it is a Gradle project, Idea automatically synchronizes module .iml files from Gradle settings ( tested with Idea 15+). So all your manual changes are overriden when gradle is refreshed.
Based on Gradle documentation, if these are not set, then current JVM configuration is used.
I found another way to run into this error. You can get this if you have been re-organizing your directory structure, and one of your poms is pointing to the old parent which no-longer configures javac (because that configuration was moved to a middle level). If this happens the top level defaults to 1.5 and the misbehaving lower level pom inherits it.
So another thing to check when you see this error is that your pom structure is matching your directory structure properly.
If Maven build works fine, try to synchronizing structure of Maven and IntelliJ IDEA projects.
In the Maven tool window, click refresh button . On pressing this button, IntelliJ IDEA parses the project structure in the Maven tool window.
Note that this might not help if you're using EAP build, since Maven synchronization feature may be broken sometimes.
If all the previous solutions haven't worked for you (which was my case), you can delete intellij config files:
project_directory/.idea/compiler.xml
project_directory/.idea/encodings.xml
project_directory/.idea/misc.xml
project_directory/.idea/modules.xml
project_directory/.idea/vcs.xml
project_directory/.idea/workspace.xml
etc.
Intellij will regenerate new ones later.
However, BE CAREFUL, this will also delete all intellij configuration made on the projet (i.e: configuration of debug mode, ...)
You need to change Java compiler version in in build config.
Make sure right depency is selected.
File > Project Structure
Select your project and navigate to Dependencies tab. Select right dependancy from dropdown or create new.

Maven facet version issue in web application

I am trying to create a maven web app, which will be part of my maven ear application. I tried creating web app from command line as well as from option within eclipse but both ways giving me error like "Dynamic Web Module 3.1 requires Java 1.7 or newer." I tried changing build path JDK to Java 1.8 and compiler level to 1.8 and saved but this didn't resolve the issue. When I do right click on project "maven update", the JDK again getting reset to old one not sure why it's not saving my changes. Is it issue with eclipse(I tried both LUNA and MARS version of eclipse)? How to resolve this issue as it's not letting me run my application from eclipse.
Also I am getting this access restriction warning "Access restriction: The type 'XmlElement' is not API (restriction on required library 'C:\Program Files\Java\jdk1.8.0_25\jre\lib\rt.jar')". If I remove JDK from build path and add it again it disappears. But when maven update is done error reappears. Please someone suggest me how to resolve these issues ?
Add following in pom.xml and do maven update
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>

Error running YOURPROJECTNAME [compile]: JAVA_HOME environment variable not defined IntelliJ 14 along with Maven

Starting fresh with the new IntelliJ I got this annoying error:
Error running MYARTIFACTNAME [compile]: JAVA_HOME environment variable not defined
It was a very nostalgic and a bit painful. After a bit of thinking I remembered what was missing:
My JAVA_HOME was set as before but somehow maven couldn't find it from within IntelliJ. So the solution was simple, I had to go to Preferences > ... > Maven > Runner and just set the JRE value to my current version of Java home that is 1.8.
My JAVA_HOME was set like before but somehow maven couldn't find it from within IntelliJ. So the solution was simple, I had to go to Preferences > ... > Maven > Runner and just set the JRE value to my current version (1.8) of Java home folder.
Other things to keep in mind is to make sure your target and source are set to the same version of JAVA in your pom.xml:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
I had the same error 7 years later - the solution was the same as in AmirHd's answer.
While we have a project JDK set, we also need to set up a jdk for Maven to use. These could be the same or different.
The Maven JDK is configured in:
Preferences --> Build, Execution Deployment --> Build Tools --> Maven --> Runner --> JRE (drop-down list)
The error goes away once this JDK too is set.

IDEA: javac: source release 1.7 requires target release 1.7

When running a JUnit test, using IntelliJ IDEA, I get
How can I correct this?
Using SDK 1.7
Module language level is 1.7
Maven build works fine. (That's why I believe this in IDEA configuration issue)
Most likely you have incorrect compiler options imported from Maven here:
Also check project and module bytecode (target) version settings outlined on the screenshot.
Other places where the source language level is configured:
Project Structure | Project
Project Structure | Modules (check every module) | Sources
Maven default language level is 1.5 (5.0), you will see this version as the Module language level on the screenshot above.
This can be changed using maven-compiler-plugin configuration inside pom.xml:
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
[...]
</build>
[...]
</project>
or
<project>
[...]
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
[...]
</project>
IntelliJ IDEA will respect this setting after you Reimport the Maven project in the Maven Projects tool window:
IntelliJ 15, 2016 & 2017
Similar to that discussed below for IntelliJ 13 & 14, but with an extra level in the Settings/Preferences panel: Settings > Build, Execution, Deployment > Compiler > Java Compiler.
IntelliJ 13 & 14
In IntelliJ 13 and 14, check the Settings > Compiler > Java Compiler UI to ensure you're not targeting a different bytecode version in your module.
In IntelliJ IDEA 14.1 the "Target bytecode version" is in a different place.
The following change worked for me:
File > Settings... > Build, Execution, Deployment > Compiler > Java Compiler : change Target bytecode version from 1.5 to 1.8
Have you looked at your build configuration it should like that if you use maven 3 and JDK 7
<build>
<finalName>SpringApp</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
...
</plugins>
...
</build>
I ran into this and the fix was to go to Project Settings > Modules > click on the particular module > Dependencies tab. I noticed the Module SDK was still set on 1.6, I changed it to 1.7 and it worked.
I've found required options ('target bytecode version') in settings > compiler > java compiler in my case (intelij idea 12.1.3)
Modify the compiler setting file of the project in the following path and change the 'target' to 1.7:
/project/.idea/compiler.xml
<bytecodeTargetLevel>
<module name="project-name" target="1.7" />
</bytecodeTargetLevel>
I resolved it by setting the field blank:
Settings > Compiler > Java Compiler > Project bytecode version
Than IntelliJ uses the JDK default version.
From one moment to the other I also got this error without a clear reason. I changed all kinds of settings on the compiler/module etc. But in the end I just recreated the IntelliJ project by reimporting the Maven project and the issue was solved. I think this is a bug.
IntelliJ 12 129.961
I've hit this after just minor upgrade from IntelliJ IDEA 14 to v14.1.
For me changing an edit of top/parent pom helped and then clicked re-import Maven (if it is not automatic).
But it maybe just enough to Right Click on module(s)/aggregated/parent module and Maven -> Reimport.
I resolved bellow method
File >> Project Structure >> Project >> Project Language Level
--> do set proper version (ex: 1.5)
check
.idea/misc.xml
sometimes you need to change languageLevel="JDK_1_X" attribute manually
If it is a Gradle project, in your build.gradle file, search for following settings:
sourceCompatibility = "xx"
targetCompatibility = "xx"
For all subrpojects, in your root build.gradle file, you may put:
subprojects { project ->
sourceCompatibility = "1.7"
targetCompatibility = "1.7"
}
Although you can manually set language levels in Idea > Settings, if it is a Gradle project, Idea automatically synchronizes module .iml files from Gradle settings ( tested with Idea 15+). So all your manual changes are overriden when gradle is refreshed.
Based on Gradle documentation, if these are not set, then current JVM configuration is used.
I found another way to run into this error. You can get this if you have been re-organizing your directory structure, and one of your poms is pointing to the old parent which no-longer configures javac (because that configuration was moved to a middle level). If this happens the top level defaults to 1.5 and the misbehaving lower level pom inherits it.
So another thing to check when you see this error is that your pom structure is matching your directory structure properly.
If Maven build works fine, try to synchronizing structure of Maven and IntelliJ IDEA projects.
In the Maven tool window, click refresh button . On pressing this button, IntelliJ IDEA parses the project structure in the Maven tool window.
Note that this might not help if you're using EAP build, since Maven synchronization feature may be broken sometimes.
If all the previous solutions haven't worked for you (which was my case), you can delete intellij config files:
project_directory/.idea/compiler.xml
project_directory/.idea/encodings.xml
project_directory/.idea/misc.xml
project_directory/.idea/modules.xml
project_directory/.idea/vcs.xml
project_directory/.idea/workspace.xml
etc.
Intellij will regenerate new ones later.
However, BE CAREFUL, this will also delete all intellij configuration made on the projet (i.e: configuration of debug mode, ...)
You need to change Java compiler version in in build config.
Make sure right depency is selected.
File > Project Structure
Select your project and navigate to Dependencies tab. Select right dependancy from dropdown or create new.

Error abotut dynamic web module version reported by STS

I've created a web project in STS 2.9.2 using Spring 3.0.6 and Maven 3.0.3. I've created some pages and code with no errors.
I've upgraded Spring libraries version from 3.0.6 to 3.1.2 in project's pom.xml and now I get following error message:
Dynamic Web Module 3.0 requires Java 1.6 or newer.
Dynamic web module version and Java compiler version in project's faces are set to 2.5 and 1.6 respectively. Also set JRE system library for my project to 1.6.
I've tried to remove Maven nature and then add it again and JRE system library is set to JSE 1.5 automatically (but I have no Java 1.5 installed). I change JRE system library to 1.6 manually (to fix STS complaint about the JRE system library version) but error about dynamic web module remains.
I've googled for a fix but I've found nothing.
How can I solve that error?
First check that your project is configured probably to use Java 1.7.
Right click your project > Properties > Java Compiler and set “Compiler compliance level” to 1.7.
Next from the menu on the left select Project Facets > Java and set its version to 1.7
If you didn’t find 1.7 as one of the drop down options in the previous preferences, then you have to add it to eclipse first.
Navigate to eclipse Preferences > Java > Installed JREs, click Add, and locate your installed Java path.
Open your project’s pom.xml and add this plugin tag
<build>
<plugins>
<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>
</plugins>
</build>
Finally, right click on your project > Maven > Update Project…
Source: http://qussay.com/2013/09/13/solving-dynamic-web-module-3-0-requires-java-1-6-or-newer-in-maven-projects/
I couldn't solve this problem by modifying pom.xml, or deleting project and workspace files and restarting eclipse.
I fixed it by disabling Maven nature of the project and then re-enabling it.
I have the same problem. I delete project from eclipse. In console I type mvn eclipse:clean. After this in Eclipse I imported a maven project and it was a solution.

Categories