maven maven.compiler.source和maven.compiler.target的坑

最近建议产品组把jdk 1.7升级到1.8,昨晚开发报了个问题过来,说maven.compiler.source和maven.compiler.target改成1.8之后,编译出来的代码还是1.7,如下:

也可通过javap -v ServiceImpl.class 查看class文件的java编译版本号。

下午抽空看了下,果不其然,第一怀疑就是maven.compiler.source和maven.compiler.target这两参数不靠谱。

看了下,IDE配置的JDK,如下:

自动build之后,的确是jdk 1.7,如下:

换成J2SE-1.8

换成1.6

查询maven官方文档,可知maven.compiler.source和maven.compiler.target仅仅是推荐,不是强制。

如果要强制jdk版本,可指定executable属性来保证,如下:

<project>
  [...]
  <build>
    [...]
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.7.0</version>
        <configuration>
          <verbose>true</verbose>
          <fork>true</fork>
          <executable><!-- path-to-javac --></executable>
          <compilerVersion>1.3</compilerVersion>
        </configuration>
      </plugin>
    </plugins>
    [...]
  </build>
  [...]
</project>

问题解决。

参考:

http://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html

http://maven.apache.org/plugins/maven-compiler-plugin/examples/compile-using-different-jdk.html

原文地址:https://www.cnblogs.com/zhjh256/p/9263009.html

时间: 2024-10-29 02:07:45

maven maven.compiler.source和maven.compiler.target的坑的相关文章

关于Maven项目build时出现No compiler is provided in this environment的处理(转)

本文转自https://blog.csdn.net/lslk9898/article/details/73836745 近日有同事遇到在编译Maven项目时出现[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?的问题, 原以为这是个个例, 源于同事粗心, 配置环境出问题造成, 后到百度查看一下, 遇到这个问题的不在少数, 但是对问题的解释没

maven 项目提交时不提交.project target等一些文件

1.首先在myeclipse10中安装maven的插件,将插件放入D:\Program Files (x86)\myEclipse10\MyEclipse Blue Edition 10\dropins\maven中, 2. 新建文件:maven.link填入如下内容:path=D:/Program Files (x86)/myEclipse10/MyEclipse Blue Edition 10/dropins/maven 3.重启myeclipse插件安装成功. 4.在myeclipse10

maven入门(3)maven的生命周期2

[0]README 1)本文部分文字转自 "maven实战",旨在 review  "maven(7)生命周期和插件" 的相关知识: 2)maven 另外两个核心概念是生命周期和插件:maven的生命周期是抽象的,其实际行为都由插件来完成,如package阶段的任何可能都会由 maven-jar-plugin 完成: [1]何为生命周期 1)intro:maven 的 生命周期就是为了对所有的构建过程进行抽象和统一: 2)maven的生命周期: 生命周期本身不做任何

在 eclipse 中 maven 插件的设置以及 maven 工程在 eclipse中的相关使用问题

1.在 eclipse 中使用 maven: a.在 eclipse 中 maven 插件是内置的. b.maven插件的相关设置,在 Window --> Preferences --> Maven 中设置两项内容: 注:在 Installations 中 点击 add...,后把自己安装的 apache-maven-3.2.2 定为安装目录. 注:在 User Settings 中 设置为自己安装的 apache-maven-3.2.2/conf 目录下的 settings.xml 文件,

关于maven:调整你的maven的jdk版本为 xxxx

找到你的.m2文件 在里面添加一下信息 实例  将其更改成1.7 <profiles> <profile> <id>jdk-1.7</id> <!-- 另外一种激活方式 --> <activation> <activeByDefault>true</activeByDefault> <jdk>1.7</jdk> </activation> <properties>

eclipse从git下载的maven项目需要转成maven才可是使用main方法启动

导入git项目: 选择导入git项目有会有两个选项:一个是从本地git仓库中导入项目,一个是从github远程仓库中导入项目 我们选择从远程仓库中导入项目: 然后选择本地存放该项目的git仓库 然后选择以什么样的形式导入本地项目中一般会自动选择好(本地存在同名项目且有.project文件的时候会选第一个,否则选第三个) 点击finish后项目就导入成功了 但是我们会发现我们的项目是maven项目但导入的项目却并不是maven项目 怎么将其变为maven项目呢?做一个操作就可以了.右击你的项目:

Maven学习第4期---Maven简单使用

一.Maven常用命令 在学习使用Maven构建项目之前,先来了解一下Maven一些实用的命令.mvn的命令有很多,在项目开发中,理解了下面的几个常用命令后,运用maven就基本没有问题了.Maven常用的命令如下: 1.1 常用的mvn命令 mvn archetype:create 创建 Maven 项目mvn compile 编译主程序源代码,不会编译test目录的源代码.第一次运行时,会下载相关的依赖包,可能会比较费时mvn test-compile 编译测试代码,compile之后会生成

Maven中部署tomcat及maven构建的一些要点

1.部署tomcat 首先需要在tomcat的tomcat-users配置文件中引入manager相应的权限 <role rolename="manager"/> <role rolename="admin"/> <role rolename="manager-gui"/> <user username = "tomcat" password = "tomcat"

Maven学习(一)——maven入门

1.1 下载maven 3.1.1 先到官网http://maven.apache.org/download.cgi 下载最新版本(目前是3.1.1 ),下载完成后,解压到某个目录(本文中是C:\Java\maven-3.1.1) 2.1 配置环境变量 系统环境变量里,添加MAVEN_HOME(或M2_HOME),其值为C:\Java\maven-3.1.1,然后PATH环境变量最后附加上";%MAVEN_HOME%\bin" 检测方法: a) 重新进入命令行(DOS窗口)模式,输入