我有一个 Maven 项目。在pom.xml
文件内容如下:
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
...
</plugins>
</build>
...
AFAIK 这是正确的,它应该针对 JDK 7
构建.
我运行基于 Debian 的 Linux dist,当我运行时 mvn clean install
它似乎总是针对我在操作系统中设置的 javac 版本构建。
我已经尝试阅读插件到底做了什么 https://maven.apache.org/plugins/maven-compiler-plugin/ , 但它并没有真正说明如何。
一个例子是我有 javac 8
在我的操作系统上运行。当我调用 mvn clean install
, 该项目针对 JDK 8
进行编译而不是 JDK 7
如 pom.xml
中所述.这是为什么?
最佳答案
默认情况下,maven-compiler-plugin 使用 %JAVA_HOME%/bin/javac 进行编译,除非:
- 您将可执行参数设置到不同的位置
- 你使用Toolchains ,这似乎符合您的要求,即 Maven 的 Java 运行时与 maven-compiler-plugin 的 JDK 不同。
关于java - maven-compiler-plugin 在 linux 上坏了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39527237/