上海营销网站建设公司,深圳市宝安建设工程交易中心,公司官网开发报价,php网站建设设计方法问题背景 由于jenkins需要部署不同的项目#xff0c;需要使用不同的jdk版本#xff0c;所以需要配置单独的settings.xml#xff0c;使用指定的jdk版本进行编译#xff0c;这里需要单独的maven设置#xff0c;在配置完后进行mvn的install的时候#xff0c;由于存在中文注释…问题背景 由于jenkins需要部署不同的项目需要使用不同的jdk版本所以需要配置单独的settings.xml使用指定的jdk版本进行编译这里需要单独的maven设置在配置完后进行mvn的install的时候由于存在中文注释会报错GBK不可映射字符。 刚开始笔者以为是mvn的默认编码是GBK造成的在pom.xml文件配置了一堆encoding为utf-8的配置完全按照maven官网配置发现无论怎么配置都无效。 后来笔者尝试使用cmd命令的javac来单独编译文件发现原来是由于win10的jdk格式默认是GBK导致无法编译后来使用javac -encoding utf-8 Test.java来完成了编译。 最终笔者在环境变量配置了UTF-8的编码来实现工程编译。 在找不到错误的时候笔者想到了最简单直接的javac编译来验证问题出在哪里。因为maven底层也是借助jdk的javac来实现编译只不过它实现了自动化编译但原理都是一样。 解决办法
在maven指定使用不同的JDK编译
pom.xml配置
project[...]build[...]pluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.11.0/versionconfigurationverbosetrue/verboseforktrue/forkexecutable!-- path-to-javac --/executablecompilerVersion1.3/compilerVersion/configuration/plugin/plugins[...]/build[...]
/project 为了避免硬编码可以使用变量 executable${JAVA_1_4_HOME}/bin/javac/executable maven的conf下的settings.xml文件配置
settings[...]profiles[...]profileidcompiler/idpropertiesJAVA_1_4_HOMEC:\Program Files\Java\j2sdk1.4.2_09/JAVA_1_4_HOME/properties/profile/profiles[...]activeProfilesactiveProfilecompiler/activeProfile/activeProfiles
/settings
具体见官网 Apache Maven Compiler Plugin – Compiling Sources Using A Different JDK
设置maven编码UTF-8
mvn -version 默认是这样的 新建系统环境变量名为MAVEN_OPTS值为 -Xms256m -Xmx512m -Dfile.encodingUTF-8 设置JDK编码为UTF-8 系统变量: 设置 JAVA_TOOL_OPTIONS 的值为 -Dfile.encodingUTF-8