当前位置: 首页 > 知识库问答 >
问题:

源和目标的Maven编译器插件jdk版本

柳俊逸
2023-03-14

我在maven-compiler-plugin的pom.xml中有以下配置。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
    </configuration>
</plugin>

JDK的源版本和目标版本应该是什么?它如何依赖于安装在我的计算机上的jdk版本?他们可能不一样吗?例如,安装的jdk是1.8,在源参数-1.6,目标-1.7中。

共有1个答案

督翰学
2023-03-14

对于source/target,您只定义javac的开关,这意味着生成兼容的代码。例如,如果您已经安装了JDK8,并且希望创建Java7可运行类。但它根本不会检查您是否安装了JDK8。如果安装了JDK7,这也会起作用。

如果您真的需要检查安装的JDK版本,您必须通过maven-enforcer-plugin检查安装的JDK。

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>1.4</version>
        <executions>
          <execution>
            <id>enforce-java</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireJavaVersion>
                  <version>1.8.0</version>
                </requireJavaVersion>
              </rules>    
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

有了上面的内容,您就不能再在JDK7上构建了...只能在JDK8上构建了...

 类似资料: