5
mvn --version
在命令提示符下我明白了:
默认区域:EN_US
但是我的系统区域tr_TR
当我启动一个没有maven的Java SE项目并运行Locale.getDefault()tr_TR回报良好。但是,当我运行Maven项目,然后Locale.getDefault()它返回我不喜欢的en_US。
如何告诉maven我的默认语言环境是TR?
mvn --version
在命令提示符下我明白了:
默认区域:EN_US
但是我的系统区域tr_TR
当我启动一个没有maven的Java SE项目并运行Locale.getDefault()tr_TR回报良好。但是,当我运行Maven项目,然后Locale.getDefault()它返回我不喜欢的en_US。
如何告诉maven我的默认语言环境是TR?
您可以使用此命令
set MAVEN_OPTS= -Duser.language=tr
但无论如何,最好的解决办法是把这些信息在POM文件也不会被命令行。特别是你必须处理的Maven-Surefire-Plugin
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.9</version>
<configuration>
<systemPropertyVariables>
<user.language>tr</user.language>
<user.region>TR</user.region>
</systemPropertyVariables>
</configuration>
</plugin>
配置第二个问题: 如果我可以,我跑在我的语言环境的web应用程序,但它支持的另一种问题,可以说,德国,英语..并且您的系统语言环境是DE。我可以从您的请求中获取系统区域设置吗?或者,也许你的浏览器喜欢的语言?
您可以从请求中获取这些信息。这是一个servlet的例子。
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.Locale;
public class GetLocale extends HttpServlet{
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException
{
Locale locale = request.getLocale();
String language = locale.getLanguage();
String country = locale.getCountry();
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println(language + ":" + country);
}
}
但是如果我将该项目部署到某个其他语言环境的计算机上呢?有没有办法让Maven直接使用OS Locale? –
我需要进行一些搜索。我从来没有遇到过这个问题。 – Oscerd
我已使用Google搜索,但无法找到信息。我认为没有办法告诉Maven直接使用OS语言环境。 – Oscerd