Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Set default java compliance level for Maven projects in Eclipse

The default compliance level for Maven is 1.5 and every time that I update a maven project in Eclipse it sets back the compliance level from 1.6 to 1.5 which is really annoying for me.

I know that I can set the target to 1.6 in the POM file but the problem is that I cannot set this in the parent POM and expect the children to inherit it. So I have to do it for every single Maven module. How can I set it in my Maven project or in the whole eclipse once for a "lifetime" without modifying every single Maven module!?

like image 804
LAC Avatar asked May 28 '13 17:05

LAC


People also ask

What is JDK compliance in Eclipse?

Even if you have JDK 6 installed, you could be writing code targeted for people that use JDK 5. The Compiler Compliance level tells Eclipse to use appropriate settings when compiling your project to ensure you code will work on the target JVM you specify. By default, if I recall, Eclipse picks Java 5 Compliance.


2 Answers

I know that I can set the target to 1.6 in pom file but the problem is that I cannot set this in the parent pom and expect the children to inherit it.

Setting the <source> and <target> version in the parent pom does work.

For example, in my parent pom, I have:

<pluginManagement>
  <plugins>
    <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>
        <encoding>UTF-8</encoding>
      </configuration>
    </plugin>
  </plugins>
</pluginManagement>

If you are having problems, you might want to check that:

  • the child specifies the correct version of the parent;
  • the parent pom specifies both source and target values;
  • you have run mvn install on the parent; and
  • mvn help:effective-pom on the child project shows the expected source/target values.

After modifying the poms, you may need to select both projects and use Maven->Update Project.

like image 137
Martin Ellis Avatar answered Sep 17 '22 05:09

Martin Ellis


Another way (if you do not have already compiler plugin defined) is to set just these properties in your pom file:

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

Details: https://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html

like image 28
Svilen Avatar answered Sep 19 '22 05:09

Svilen