当前位置: 首页 > 知识库问答 >
问题:

如何设置文件。在构建maven项目时编码=utf-8?

暴辰龙
2023-03-14

系统。出来println(Charset.defaultCharset()。displayName()) 打印ISO-8859-1,因此我想将defaultCharset设置为UTF-8。

使用java-Dfile进行尝试时。编码=utf-8-jar XXX。jar,我检查了默认字符集是否设置为UTF-8。

但是有没有办法设置Dfile。encoding=utf-8选项在maven打包级别,这样我就可以运行java-jarxxx了。jar

我尝试的是:

>

波姆。xml

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.19.1</version>
                <configuration>
                    <argLine>-Dfile.encoding=utf-8</argLine>
                </configuration>
            </plugin>
  • MAVEN_OPTS="-Dfile.encoding=utf-8"mvn清洁包

我更喜欢用pom控制。xml文件。


共有2个答案

赵夕
2023-03-14

示例中使用的是maven surefire插件。我想既然你使用它,你就必须运行一些测试。您的测试需要特定的文件编码。

可以这样配置surefire插件:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.19.1</version>
    <configuration>
        <systemProperties>
            <property>
                <name>file.encoding</name>
                <value>utf-8</value>
            </property>
        </systemProperties>
    </configuration>  
</plugin>

请注意,为版本2.19.1提供的示例在最新版本中已被弃用:

https://maven.apache.org/surefire/maven-surefire-plugin/examples/system-properties.html

问题是如何在运行时之前为Maven构建传递JVM参数。

从Maven 3.3.1开始,您可以通过${maven.projectBasedir}/. mvn/jvm.config文件定义JVM配置,这意味着您可以根据每个项目库定义构建选项。该文件将成为您的项目的一部分,并将与您的项目一起签入。

因此,在项目根目录中创建. mvn/jvm.config内容:

-Dfile.encoding=utf-8

见参考资料:https://maven.apache.org/configure.html#mvn-jvm配置文件

贺俊杰
2023-03-14

您可以将JDK\u JAVA\u选项环境变量定义为-Dfile。encoding=utf-8,以避免每次都键入它。有关详细信息,请参阅java命令文档。

在OpenJDK中,所有操作系统都默认使用UTF-8:JEP400。

 类似资料:
  • 问题内容: 我有一个PHP脚本,名为: http://cyber- flick.com/apiMorpho.php?method=getMorphoData&word=kot 以纯文本显示一些数据: 如您所见,在适当的字符位置上有很多“忙碌”。我想做的是以某种方式显示此内容,以便人们在浏览器中看到正确的UTF-8字符。 您可以将其封装在HMTL标签中并以元UTF-8编码进行设置,但是由于将从该脚本

  • 我有以下项目结构 上述项目结构的思想是:多个项目包含多个子项目,每个项目都可以依赖于其他项目。此外,项目中的子项目可能与同一项目中的其他子项目有依赖关系。项目将在根中的settings.gradle中指定。同时,每个项目中的gradle会说出该特定项目的子项目是什么。 我的设置.根部的Gradle看起来像 和Project1设置。Gradle将看起来像 其他依赖关系顺序是在相应的build.gra

  • 我有一个jsp文件,在那里我收集表单值,并通过jQuery Ajax将其发送到strut 2 action class。 我的Ajax函数看起来像 当我解码并提醒它的文本我正确编码和解码。 当我通过ajax将其发送到struts2时,它会产生问题。 我已经检查了Interceptor中的值它显示值??????? 拦截器 在我的jsp文件中,我将内容类型设置为UTF-8,在ajax中,我也检查了内容

  • 我使用@FormUrlEncoded发送到服务器。当我向服务器发送字符串时,我得到如下请求体 所以我找到了加法器。拦截器 ApiInterface接口 但它不起作用。英语和数字都可以,但不是我的语言。如何修复它?我也试过设置-

  • 我尝试使用mojo插件在Maven中配置sencha cmd。Maven配置如下所示: 我设置了环境变量(在我的示例中,我使用的是Windows操作系统)。当我尝试执行命令时,会出现错误: 未能在project Vehicle-Store上执行goal org.codehaus.mojo:exec-maven-plugin:1.3.2:exec(sencha-compile):命令执行失败。无法运

  • 从gradle maven publish插件的文档中可以清楚地看到,您可以直接在: 但是,似乎取自您正在使用的文件夹的名称。有没有办法明确地设置?