在指定编译器版本时,我使用以下两个
amount.addEventListener('input', Convert(event));
和
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
我想知道这两个是否重复?
答案 0 :(得分:0)
您可以使用属性变量或显式变量。我建议这样做。
<project..>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<build>
<pluginManagement>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artfiactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
</plugin>
</pluginManagement>
</build>
..
</project>
我通常鼓励用户使用公司pom,其中包含插件版本的定义(在我们的示例中,pluginManagement
部分还包括其他插件),在您自己的pom中,您可以使用属性来定义为此构建的source/target
如下所示:
<project..>
<parent>
<groupId>com.acme</groupId>
<artfiactId>corporate-pom</artifactId>
<version>3.0.2</version>
</parent>
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
</build>
..
</project>
上述情况不是100%正确的原因,您可以在代码中使用JDK 8部分(如果使用JDK 8进行编译),如果您需要在JRE 7上运行它,该部分将失败。正确地必须使用maven-toolchains和animalsniffer-maven-plugin
如果您使用的是JDK 9+,则应像这样增强配置:
<project..>
<properties>
<maven.compiler.release>9</maven.compiler.release>
</properties>
<build>
<pluginManagement>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artfiactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
</plugin>
</pluginManagement>
</build>
..
</project>