2015-04-06 60 views
8

我在我的pom.xml中为maven-compiler-plugin配置了以下配置。Maven编译器插件源和目标的jdk版本

<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。

回答

10

对于源/目标,您只能定义javac这意味着生成兼容代码的开关。例如,如果你已经安装了jdk 8并且想创建java 7可运行的类。 但它不检查是否已经安装了JDK 8。如果您安装了JDK 7,这也可以工作。

如果你真的需要检查其安装必须通过maven-enforcer-plugin去检查JDK的安装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> 

通过以上你是不是能够建立一个JDK 7了...只用JDK 8 ...

顺便说一句:你为​​什么用这么旧的maven-compiler-plugin版本?

+0

这是一个老教程的例子。另外,如果源jdk大于目标,它会导致mvn错误,这是很自然的。 –

相关问题