VOOZH about

URL: https://www.javacodegeeks.com/2018/03/maven-eclipse-and-java-9.html

⇱ Maven, Eclipse and Java 9 - Java Code Geeks


Anyone that uses the M2E(maven-to-eclipse) plugin in eclipse knows the issue where you have run a build, then update maven on your project only to have it reset the JRE and throw up a wall of project errors! I noticed the issue in the post I made on running Java EE 8 with Java 9 using Open Liberty

The solution is to ensure the compiler is running the correct version you require, so

<properties>
 <maven.compiler.source>1.8</maven.compiler.source>
 <maven.compiler.target>1.8</maven.compiler.target>
 <failOnMissingWebXml>false</failOnMissingWebXml>
</properties>

Or –

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

There is a further point worth noting if you are using Java 9 or later, as the version number format is different. So while Java 8 has a version of 1.8, Java 9 has a version of 9

πŸ‘ Image
Java 9 vs Java 8 versions

This means you need to state the version in your pom as

<properties>
 <maven.compiler.source>9</maven.compiler.source>
 <maven.compiler.target>9</maven.compiler.target>
 <failOnMissingWebXml>false</failOnMissingWebXml>
 </properties>

Or using the full version in my JavaEE8 project(https://github.com/farrelmr/javaee8/blob/master/pom.xml) this would be stated as –

<project 
 xmlns="http://maven.apache.org/POM/4.0.0" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <groupId>com.javabullets.javaee8</groupId>
 <artifactId>javaee8</artifactId>
 <version>1.0-SNAPSHOT</version>
 <packaging>war</packaging>
 <dependencies>
 <dependency>
 <groupId>javax</groupId>
 <artifactId>javaee-api</artifactId>
 <version>8.0</version>
 <scope>provided</scope>
 </dependency>
 </dependencies>
 <build>
 <finalName>javaee8</finalName>
 </build>
 <properties>
 <maven.compiler.source>9</maven.compiler.source>
 <maven.compiler.target>9</maven.compiler.target>
 <failOnMissingWebXml>false</failOnMissingWebXml>
 </properties>
</project>

This will prevent the problem in eclipse

This post may seem obvious – but it is worth stating that the change in version number for Java 9 means you must check you are using the correct version number in maven

Published on Java Code Geeks with permission by Martin Farrell, partner at our JCG program. See the original article here: Maven, Eclipse and Java 9

Opinions expressed by Java Code Geeks contributors are their own.

Do you want to know how to develop your skillset to become a Java Rockstar?
Subscribe to our newsletter to start Rocking right now!
To get you started we give you our best selling eBooks for FREE!
1. JPA Mini Book
2. JVM Troubleshooting Guide
3. JUnit Tutorial for Unit Testing
4. Java Annotations Tutorial
5. Java Interview Questions
6. Spring Interview Questions
7. Android UI Design
and many more ....
I agree to the Terms and Privacy Policy

Thank you!

We will contact you soon.

πŸ‘ Photo of Martin Farrell
Martin Farrell
March 9th, 2018Last Updated: March 9th, 2018
0 131 1 minute read

Martin Farrell

Martin is a Software Developer and Consultant specializing in Java and the Spring Framework. When not coding he spends time with his wife and two children, or cycling his bike.
Subscribe

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Oldest
Newest Most Voted
Back to top button
Close
wpDiscuz