在Linux上打破maven-compiler-plugin?

时间:2016-09-16 08:46:46

标签: java linux maven

我有一个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进行编译。这是为什么?

2 个答案:

答案 0 :(得分:2)

默认情况下,maven-compiler-plugin使用%JAVA_HOME%/ bin / javac进行编译,除非:

  • 您将executable-parameter设置为其他位置
  • 您使用的Toolchains似乎符合您的要求,即与Maven编译器插件的JDK相比,Maven的Java Runtime不同。

答案 1 :(得分:0)

源和目标设置只是作为参数传递给javac编译器。使用机器上安装的javac。