Статьи

Maven, Eclipse и Java 9

Любой, кто использует плагин M2E (maven-to-eclipse) в eclipse, знает проблему, в которой вы запустили сборку, а затем обновите maven в вашем проекте только для того, чтобы он сбросил JRE и вывел стену ошибок проекта! Я заметил проблему в посте, посвященном запуску Java EE 8 с Java 9 с использованием Open Liberty

Решение состоит в том, чтобы обеспечить правильную версию компилятора, поэтому

1
2
3
4
5
<properties>
   <maven.compiler.source>1.8</maven.compiler.source>
   <maven.compiler.target>1.8</maven.compiler.target>
   <failOnMissingWebXml>false</failOnMissingWebXml>
</properties>

Или же —

01
02
03
04
05
06
07
08
09
10
11
12
13
 <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>

Есть еще один момент, который стоит отметить, если вы используете Java 9 или новее, так как формат номера версии отличается. Так что, хотя Java 8 имеет версию 1.8, Java 9 имеет версию 9

Java 9 против версий Java 8

Это означает, что вам нужно указать версию в вашем pom как

1
2
3
4
5
<properties>
   <maven.compiler.source>9</maven.compiler.source>
   <maven.compiler.target>9</maven.compiler.target>
   <failOnMissingWebXml>false</failOnMissingWebXml>
 </properties>

Или используя полную версию в моем проекте JavaEE8 (https://github.com/farrelmr/javaee8/blob/master/pom.xml), это будет указано как —

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<project
 <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>

Это предотвратит проблему в затмении

Этот пост может показаться очевидным — но стоит отметить, что изменение номера версии для Java 9 означает, что вы должны проверить, используете ли вы правильный номер версии в maven

Опубликовано на Java Code Geeks с разрешения Мартина Фаррелла, партнера нашей программы JCG . Смотреть оригинальную статью здесь: Maven, Eclipse и Java 9

Мнения, высказанные участниками Java Code Geeks, являются их собственными.