maven-compiler-plugin插件指定编译

最近拿到一个maven系统,需要使用jdk1.8的环境才能运行(公司开发使用jdk1.7),于是下载、安装jdk1.8。

安装完成之后(本人使用idea工具),打开module settings,设置里面的Modules->Dependencies->module sdk为安装好的1.8版本,同时还得设置Modules->Dependencies->sources模块中的Language Level为8。

这样操作之后其实只是设置了module的sdk,若是工程中有很多modules,可以直接设置Project菜单下的project sdk,同时别忘了设置project language level。(在jdk1.8中支持了lambda方式,若是使用了,就必须吧language level切换为8,否则是不认的)

这时可以去执行代码,突然发现编译出错

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project jiraRobot: Compilation failure: Compilation failure:

[ERROR] /Users/Documents/workspace/*.java:[29,62] 错误: -source 1.5 中不支持 diamond 运算符

[ERROR] (请使用 -source 7 或更高版本以启用 diamond 运算符)

经过查看应该是利用maven的插件maven-compiler-plugin来进行的编译,但是这个编译指定的版本却是1.5的,所以编译肯定会失败的。

可以通过增加配置,以纠正错误,如下:

<build>
    <plugins>
        <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> <!-- 需要生成的目标class文件的编译版本 -->
<!-- 一般而言,target和source是保持一致的,但是,有时候为了让程序能在其他版本的jdk中运行,会存在target和source不一致的情况 -->
            </configuration>
        </plugin>
    </plugins>
</build>

配置修改之后再运行就没有任何问题了。



猜你喜欢

转载自jjhpeopl.iteye.com/blog/2322262
今日推荐