切换到JDK8后,MANIFEST.MF属性开始返回null
https://bugs.openjdk.java.net/browse/JDK-8201636暗示这是Oracle在JDK 8u151-8u172中引入的错误。
我使用pom.xml和IntelliJ IDEA。 pom.xml
指定(标记<
和>
已删除)
<maven.compiler.target> 1.8 </maven.compiler.target>
<maven.compiler.source> 1.8 </maven.compiler.source>
IDEA设置显示target bytecode version 1.8
JAVA_HOME
设置为JDK10
我已经安装了C:\Program Files\Java\jdk1.8.0_201
。
如何为构建指定此版本。 pom.xml
是否也胜过IDEA项目设置,反之亦然?
编辑:
我已指定
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<verbose>true</verbose>
<fork>true</fork>
<!--executable>{JAVA_1_8_HOME}/bin/javac</executable-->
<executable>C:/Program Files/Java/jdk1.8.0_201/bin/javac</executable>
<compilerVersion>1.8</compilerVersion>
</configuration>
</plugin>
Intellij仍默认为JDK 1.5,并在List<String> a = new ArrayList<>();
上扼杀“我不理解<> JDK1.5”。
答案 0 :(得分:0)
maven.compiler.target
和source
与它无关。这些只是arguments passed to javac
。
如果要显式指定javac
的版本,则可以使用the Maven Compiler Plugin。
<configuration>
<verbose>true</verbose>
<fork>true</fork>
<executable><!-- path-to-javac --></executable>
<compilerVersion>1.3</compilerVersion>
</configuration>
否则,将使用Project SDK中的javac
(项目结构>项目)。