强制使用Java版本的源和目标的两种方法

时间:2018-05-06 23:55:59

标签: java maven pom.xml target

对于基于Maven的Java项目,我已经看到两种方法强制在POM文件的源和目标中使用特定版本的Java。

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>10</maven.compiler.source>
    <maven.compiler.target>10</maven.compiler.target>
</properties>

...和...

<build>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
        <plugins>
            …
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                    <source>10</source>
                    <target>10</target>
                </configuration>
            </plugin>

我为什么要使用其中一个?

2 个答案:

答案 0 :(得分:2)

这是品味和偏好的问题。两者 - according to the documentation - 完成基本相同的事情。

我使用过的惯例是使用compiler plugin代替,因为您已经给出了实际强制特定版本进行编译的一些保证。

答案 1 :(得分:0)

简便的方法是在您的IDE中使用设置菜单。 例如,在Intelij IDEA中,您可以转到文件/设置/构建,执行,部署/编译器/ Java编译器,并在rigth面板中选择首选的JDK版本。 默认值为“与语言级别相同”。