2011-02-17 4 views
13

내가 원하는 것은 빌드 구성에 의존하는 설정을 사용하는 방법입니다. 구체적인 예를 들어, 내 안드로이드 응용 프로그램은 웹 서비스에 연결합니다. 개발 중에는 구성 가능한 값에서 서비스 URL을 가져 오려고합니다. Test에서는 생산에있어서 다른 가치가 필요합니다.안드로이드 - 개미를 사용하여 구성 값을 변경하는 빌드 구성 만들기

그래서 코드에서 나는 이런 식으로 뭔가가 기본적으로

public class HttpRequestHelper 
{ 
    private static String GetServiceUrl(ServiceAction action) 
    { 
     return serviceUrl + action.toString(); 
    } 
} 

(일식 통해 실행/디버깅), 나는 URL을 내가 원하는 http://localhost:1234 테스트에서

수 있음을 원하는 https://test.mydomain.com

생산 중 원하시는 분 https://mydomain.com

저는 일식과 개미에 익숙하지 않습니다. ed java. 어떻게 설정해야합니까? build.xml은 어떻게 생겼을 까? 테스트/테스트 버전을 빌드 할 때 커맨드 라인을 사용해야한다는 것을 이해합니다. 괜찮아. 하지만이 serviceUrl을 빌드에 종속적으로 자동 설정하는 방법을 모르겠습니다. 나는이 정보 (자원, 속성 파일)를 넣을 최고의 장소조차 확신하지 못한다. 나는 건물, 설정, 건물 등을 설정하는 것을 피하고 싶습니다.

답변

9

로 위에서 언급 한 답변에 따르면 dev.properties, test.properties, prod.properties 등의 등록 정보 파일에 URL을 입력해야합니다.

이제는 빌드를 지능적으로 선택하면됩니다. 환경에 의존하는 프로퍼티 파일

ANT에 매개 변수를 전달하여 수행 할 수 있습니다

, 뭔가 같은 :

$ 개미 - 파일 MyBuild.xml -DcurrentEnv = dev에 (개발 환경의 경우)
$ 개미 - 파일 MyBuild.xml -DcurrentEnv = 테스트 (테스트 용)
$ ant -file MyBuild.장소에두고

<target name="jarMe"> 
    <jar destfile="sample.jar" basedir="src" includes="${currentEnv}.properties"/> 
</target> 

, 당신은 빌드시가 제공 한 이름 : 당신의 빌드 스크립트 내부

(생산) XML -DcurrentEnv = 찌르다, 이것은 당신이 당신의 속성 파일을 포함 할 수있는 방법입니다 , 해당 이름의 등록 정보 파일이 선택됩니다.

2

URL을 클래스 파일에 배치 할 수있는 특성 파일에 배치하는 것으로 시작합니다. 테스트 및 프로덕션 특성 파일을 작성하십시오. 그런 다음 빌드에 따라 올바른 파일을 클래스 경로에 배치하고 런타임에 속성을 가져옵니다.

4

당신은 당신의 build.properties 파일에 다음과 같은 속성 파일이 시도 할 수 :

service.url=* 

을 그리고 당신은 당신의 개발 및 통합 테스트를위한 local.properties에 http://localhost:1234 또는 https://test.mydomain.com을 가질 수 있으며이 설정 될 수있다 default.properties의 https://mydomain.com으로 변경하십시오.

이렇게하면 다른 빌드 환경에서 service.url의 값이 달라집니다. 당신은 설정 파일을 생성하기 위해이 값을 사용하여 코드에 구문 분석하거나 설정 변수 ENV, 또는 단지 리소스 파일에 넣어, 안드로이드는 당신을 위해 그것을 읽을 수 있습니다 :

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string name="service-url">@@[email protected]@</string> 
</resources> 
관련 문제