2010-07-13 3 views
0

Ant를 사용하여 Java 소프트웨어의 몇 가지 맛을 컴파일하는 방법을 찾고 있습니다. 풍미에 의해, 예를 들면, 예심 및 가득 차있는 버전을 의미한다. 코드에서 Ant에서 동일한 Java 소프트웨어의 여러 가지 맛을 컴파일하십시오.

나는이 재판 또는 전체 버전 여부를 지정하는

public static final boolean TRIAL 

변수가 있습니다. Ant에서 설정하고 두 버전을 자동으로 컴파일 할 수 있다면 아주 좋을 것입니다.

내가이 문제에 직면 한 첫 번째 사람은 아니지만 나는 좋은 방법을 찾을 수 없었다. CI에서

간단한 사용 "IFDEF는"및 메이크 파일에서 정의를 설정합니다 .... 이것

답변

1

봐 :

//#ifdef CUSTOMER1 
private String abc = "abc"; 
//#else 
private String abc = "cba"; 
//#endif 

및 설정을 : http://code.google.com/p/preprocessor/
는이 같은 물건을 할 수 있습니다 그것 개미

+0

재미있는 (이전의 전처리와 같은) 외부 소프트웨어를 사용하지 않고 하나 개의 가능한 솔루션입니다 물론

. 고맙습니다. – Demiurg

1

나는 템플릿 파일을 만들고 ANT의 복사 필터를 사용하여 컴파일하기 전에 값을 변경합니다. 필자는 소스 코드로 한번도 해본 적이 없지만 구성 파일에 꽤 많이 사용했습니다.

소스 템플릿 파일에서

, 당신은 할 수 :

<filter token="TRIAL_VALUE" value="true" /> 
<copy tofile="${your.target.file.name.here}" filtering="true"> 
    <fileset dir="${location.of.your.template}"> 
    <include name="${template.file}" /> 
    </fileset> 
</copy> 

내가 아이디어를 좋아하지 확실하지 않다 :

public static final boolean TRIAL = @[email protected] 

그런 다음 개미의 build.xml에, 당신이 할 수 실제 소스 파일을 사용하여이 작업을 수행 할 수 있습니다 (IDE를 화나게 할 수있는 좋은 기회라고 생각합니다). 당신은 항아리에 포함 된 구성 파일을 사용하는 것이 좋습니다 (그리고 대신 있음에 복사 필터 기술을 사용) 나는 강한 당신을 제안

0

당신은 쉽게 해킹 (java decompiler)을 피하기 위해 소프트웨어의 여러 버전이있는 경우 수 재판이 단지 mock 인 곳에서의 소스의 병렬 세트의 사용, 등등.

ANT를 사용하면 정확히 어떤 버전을 사용할 지 선택할 수 있습니다. 이 소스를 복제하지만

관련 문제