永发信息网

为什么Maven会更改Eclipse JDK设置

答案:5  悬赏:30  手机版
解决时间 2021-02-21 05:26
为什么Maven会更改Eclipse JDK设置
最佳答案
在maven的默认配置中,对于jdk的配置是1.4版本,那么创建/导入maven工程过程中,工程中未指定jdk版本。
对工程进行maven的update,就会出现工程依赖的JRE System Library会自动变成JavaSE-1.4。
解决方案:修改maven的默认jdk配置
maven的conf\setting.xml文件中找到jdk配置的地方,修改如下:
           <profile> 
               <id>jdk1.6</id>  
               <activation> 
                   <activeByDefault>true</activeByDefault>  
                   <jdk>1.6</jdk> 
               </activation>  
               <properties> 
                   <maven.compiler.source>1.6</maven.compiler.source>  
                   <maven.compiler.target>1.6</maven.compiler.target>  
 <maven.compiler.compilerVersion>1.6</maven.compiler.compilerVersion> 
               </properties> 
           </profile>
全部回答
安装 Maven 之前要求先确定你的 jdk 已经安装配置完成。Maven是 Apache 下的一个项目,目前最新版本是 3.0.4,我用的也是这个。 首先去官网下载 Maven 下载完成之后将其解压,我将解压后的文件夹重命名成 maven,并将它放在 D:\Server 目录下,即 maven 最终的路径是:D:\Server\maven 配置 maven 环境变量: 系统变量:MAVEN_HOME = D:\Server\maven 用户变量:path = %MAVEN_HOME%\bin 相信大家都有配过环境变量的,详细步骤就不说了,对着把属性名和属性值配上的OK了。
编译器插件用来编译项目的源文件.从3.0版本开始, 用来编译Java源文件的默认编译器是javax.tools.JavaCompiler (如果你是用的是java 1.6) . 如果你想强制性的让插件使用javac,你必须配置插件选项 forceJavacCompilerUse. 同时需要注意的是目前source选项和target 选项的默认设置都是1.5, 与运行Maven时的JDK版本无关.如果你想要改变这些默认设置, 可以参考 Setting the -source and -target of the Java Compiler中的描述来设置 source 和target 选项. 这是Maven已知的一个特性。除非在你的POM文件中显示的指定一个版本,否则会使用编译器默认的source/target版本1.5。主要还是在于Eclipse中Maven的集成方式起到了关键作用, 它会从POM文件中生成项目的.project,.classpath以及.settings, 因此除非POM文件指定了正确的JDK版本, 否则你每次更新项目配置的时候它都会重置到1.5版本。
一、问题描述 在eclipse中新建了一个maven工程, 然后更改jdk版本为1.6, 结果每次使用maven > update project的时候jdk版本都恢复成1.5。 二、原因分析 maven官方文档有如下描述: 编译器插件用来编译项目的源文件.从3.0版本开始, 用来编译java源文件的默认编译器是javax.tools.javacompiler (如果你是用的是java 1.6) . 如果你想强制性的让插件使用javac,你必须配置插件选项 forcejavaccompileruse. 同时需要注意的是目前source选项和target 选项的默认设置都是1.5, 与运行maven时的jdk版本无关.如果你想要改变这些默认设置, 可以参考 setting the -source and -target of the java compiler中的描述来设置 source 和target 选项. 这是maven已知的一个特性。除非在你的pom文件中显示的指定一个版本,否则会使用编译器默认的source/target版本1.5。主要还是在于eclipse中maven的集成方式起到了关键作用, 它会从pom文件中生成项目的.project,.classpath以及.settings, 因此除非pom文件指定了正确的jdk版本, 否则你每次更新项目配置的时候它都会重置到1.5版本。 三、解决方案 在pom.xml文件中增加如下配置: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 org.apache.maven.plugins maven-compiler-plugin 3.1 1.6 1.6
1,原因分析 Maven官方文档有如下描述: 编译器插件用来编译项目的源文件.从3.0版本开始, 用来编译Java源文件的默认编译器是javax.tools.JavaCompiler (如果你是用的是java 1.6) . 如果你想强制性的让插件使用javac,你必须配置插件选项 forceJavacCompilerUse. 同时需要注意的是目前source选项和target 选项的默认设置都是1.5, 与运行Maven时的JDK版本无关.如果你想要改变这些默认设置, 可以参考 Setting the -source and -target of the Java Compiler中的描述来设置 source 和target 选项. 这是Maven已知的一个特性。除非在你的POM文件中显示的指定一个版本,否则会使用编译器默认的source/target版本1.5。主要还是在于Eclipse中Maven的集成方式起到了关键作用, 它会从POM文件中生成项目的.project,.classpath以及.settings, 因此除非POM文件指定了正确的JDK版本, 否则你每次更新项目配置的时候它都会重置到1.5版本。 2,解决方案 在pom.xml文件中增加如下配置: <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> </build> ~如果你认可我的回答,请及时点击【采纳为满意回答】按钮 ~~手机提问的朋友在客户端右上角评价点【满意】即可。 ~你的采纳是我前进的动力 ~~O(∩_∩)O,记得好评和采纳,互相帮助,谢谢。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
石家庄哪有紫水晶洞和白水晶洞卖的?
周长相等的两个图形,它们的面积也相等,这两个
满地红面馆我想知道这个在什么地方
自考本科不靠机构怎么报名,拿南京大学的毕业
600欧阻的耳机要什么样的耳放才能推得动啊
领恩旅社这个地址在什么地方,我要处理点事
有谁知道广州哪里有套装卫衣批发,谢谢
若(x+2)的平方根是 正负2,则 2x+5 的算术平
2的因数有哪几个?
天诚网络开网店靠谱吗
河尾我想知道这个在什么地方
关于大同棚户区快递
北京科技大学这所大学怎么样,主要是科研环境
ctf保税店我想知道这个在什么地方
有反常呼吸A.多根多处肋骨骨折B.张力性气胸C.
推荐资讯
二维码和一些商品包装上面的条码有什么区别?
招行联名信用卡礼包去哪
长方形分成三个直角三角形
锦星洗涤(杨河街)地址在什么地方,想过去办事
根据下图,下列关于神经细胞的叙述,错误的是
菱悦新车被刮了好几个道子,后保险杠撞墙上啦
生态系统是指在一定内, 与 所形成的统一的
1851年在中国发生的规模巨大的农民运动是()
蕊内这个英文名怎么写有助于回答者给出准确的
江家大院在哪里啊,我有事要去这个地方
福运百货超市我想知道这个在什么地方
处理器: Intel(R) Core(TM) i3-2330M CPU @
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?