2013-07-21 4 views
5

내가 입력 할 때 내가 볼 명령 프롬프트에서메이븐 기본 로케일 동일하지

mvn --version 

:

기본 로케일 : ko 페이지

그러나 내 시스템 로케일이 tr_TR

입니다

maven이없는 Java SE 프로젝트를 시작하고 Locale.getDefault()를 실행하면 tr_TR 괜찮아. 하지만 Maven 프로젝트를 실행 한 다음 Locale.getDefault()를 실행하면 en_US가 반환됩니다.

기본 로케일이 TR인지 메이븐에 어떻게 알릴 수 있습니까?

답변

9

이 명령

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> 

의 구성을 처리해야 두 번째 질문 : 내가, 내 로케일에서 웹 응용 프로그램을 실행하고 수 있지만 지원하는 경우 또 다른 문제는 독일어 말할 수 , 영어 .. 그리고 당신의 시스템 로케일은 DE입니다. 요청한대로 시스템 로케일을 가져올 수 있습니까? 아니면 브라우저에서 선호하는 언어일까요?

요청에서이 정보를 가져올 수 있습니다. 다음은 서블릿의 예입니다.

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); 
    } 
} 
+0

그러나 프로젝트를 다른 로켈과 함께 다른 컴퓨터에 배포하면 어떻게됩니까? Maven이 OS Locale에 직접 사용하도록 지시 할 방법이 없습니까? –

+0

몇 가지 검색을해야합니다. 나는이 문제에 결코 직면하지 않았다. – Oscerd

+0

저는 인터넷 검색을했는데 정보를 찾을 수 없습니다. 나는 OS 로케일을 직접 사용하도록 Maven에게 말할 방법이 없다고 생각한다. – Oscerd

관련 문제