`

maven设定项目编码

阅读更多
今天在DOS下执行mvn compile命令时报错说缺少必要符号,事实上根本就没有缺少,但何以如此呢,为啥eclipse在编译时就没有这问题呢?

原因是编码的问题造成的!

eclipse在编译的使用使用的是UTF-8,因为整个项目设置的是UTF-8格式编码。

当在DOS下执行mvn compile命令时,默认使用的是系统的GBK格式编码。

问题解决方案是在pom.xml文件中添加如下代码
<properties>
		<!-- 文件拷贝时的编码 -->
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<!-- 编译时的编码 -->
		<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
	</properties>

或者添加如下代码:
<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.1</version>
				<configuration>
					<source>1.5</source>
					<target>1.5</target>
					<encoding>UTF-8</encoding><!-- 指定编码格式,否则在DOS下运行mvn compile命令时会出现莫名的错误,因为系统默认使用GBK编码 -->
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
				<version>2.6</version>
				<configuration>
					<encoding>UTF-8</encoding><!-- 指定编码格式,否则在DOS下运行mvn命令时当发生文件资源copy时将使用系统默认使用GBK编码 -->
				</configuration>
			</plugin>

maven之资源文件拷贝设置

Maven零散笔记——常用配置

maven常见问题问答

maven2 (二)

maven用途、核心概念、用法、常用参数和命令、扩展

mvn compiler:compile时出现非法字符: /65279错误

tomcat环境中file.encoding的修改方法
备注:使用maven的插件时可以带上参数  -Dfile.encoding=UTF-8
分享到:
评论
4 楼 ron.luo 2018-02-06  
牛逼,正解!
3 楼 851228082 2015-06-02  
宋建勇 写道
851228082 写道
<!-- 文件拷贝时的编码 --> 
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
        <!-- 编译时的编码 --> 
        <maven.compiler.encoding>UTF-8</maven.compiler.encoding> 

project.build.sourceEncoding什么作用?你说是文件拷贝时的编码,那什么时候会发生文件拷贝。

另外,它与maven.complier.encoding的区别是什么?


就是设定file.encoding=UTF-8,设定后文件拷贝不管在啥时都是用UTF-8,文件拷贝是在compile时,project.build.sourceEncoding是设定整个项目的编码!



project.build.sourceEncoding是设定整个项目的编码!
项目在开发时,就已经指定了编码方式,这里再指定不就重复了吗?
不过,你说的文件拷贝时使用utf8,那么什么时间段会发生拷贝,打包时还是下载jar包时指定它是utf8存储?
2 楼 宋建勇 2015-06-02  
851228082 写道
<!-- 文件拷贝时的编码 --> 
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
        <!-- 编译时的编码 --> 
        <maven.compiler.encoding>UTF-8</maven.compiler.encoding> 

project.build.sourceEncoding什么作用?你说是文件拷贝时的编码,那什么时候会发生文件拷贝。

另外,它与maven.complier.encoding的区别是什么?


就是设定file.encoding=UTF-8,设定后文件拷贝不管在啥时都是用UTF-8,文件拷贝是在compile时,project.build.sourceEncoding是设定整个项目的编码!
1 楼 851228082 2015-06-01  
<!-- 文件拷贝时的编码 --> 
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
        <!-- 编译时的编码 --> 
        <maven.compiler.encoding>UTF-8</maven.compiler.encoding> 

project.build.sourceEncoding什么作用?你说是文件拷贝时的编码,那什么时候会发生文件拷贝。

另外,它与maven.complier.encoding的区别是什么?

相关推荐

Global site tag (gtag.js) - Google Analytics