2012-01-15 2 views
1

현재 테스트 용 코드를 주석 처리해야하는 작은 프로그램을 작성 중입니다. 릴리스 버전을 컴파일하는 동안 컴파일러가 실행되기 전에 자동으로 실행하고 컴파일이 끝난 후에 코드를 다시 주석으로 추가하려고합니다.Eclipse에서 컴파일 전후에 실행할 프로그램 만들기

내가 누락 된 유일한 프로그램은 빌드 프로세스에 추가하는 것입니다. 모든 도우미 덕분에!

답변

3

앱의 릴리스 버전을 빌드하는 데 Eclipse를 사용하지 마십시오. Ant, Maven 또는 이클립스보다 훨씬 융통성이 있으며 GUI가 필요없는 다른 빌드 도구를 사용하여 스크립트를 작성하고 연속 통합 서버에서 사용할 수 있습니다.

이러한 모든 도구는 사전 컴파일 및 편집 작업을 빌드 프로세스에 포함시키는 데 쉽게 사용되어야합니다.

, 당신은 단지 공공 정적 최종 부울 상수 FOR_TEST를 사용하고, 그런 다음 모든을 가지고 코드에서 변경하는 단 하나의 장소에있을 것입니다

if (TestUtil.FOR_TEST) { 
} 

에서 모든 테스트 코드를 포함 할 수 말했다 컴파일 된 버전에서 테스트 코드가 제거되었습니다. 복잡한 Java 프로그램이 필요하지 않습니다.

또는 출시 된 버전의 모든 테스트 코드를 허용하고 시스템 속성을 사용하여 테스트 할 때 활성화 할 수 있습니다. 이것은 어떤 사전 컴파일/후행 컴파일 단계조차도 필요하지 않으며 아마 무시할만한 비용을 가질 것입니다.

+0

위의 코드를 컴파일합니까? 나는 C/C++ 컴파일러에서 컴파일러에 의해 무시 된 것들을 알고 있지만, 자바에 대해서는 그렇게 확신하지 못한다. 나는 코드에 로그를 추가하는 클래스를 가지고있다 : Log.l ("stuff"); 그리고 프로덕션에서 아무런 호출도 필요 없기 때문에 Log 클래스에 이것을 추가하면 사용자가 내 프로그램을 사용할 때 일부 중복 계산이 방지됩니까? - 안드로이드와 관련되어 있으므로 만들고 싶습니다. 가능한 한 간단하게 장치를 만들 수 있습니다. 다시 한번 감사드립니다! – Mashiah

+0

TestUtil.FOR_TEST가 false로 평가되는 부울 상수 인 경우 if 블록의 코드가 컴파일 된 클래스에서 제거됩니다. 구문 상 올바로 컴파일해야하지만 컴파일러는 if 블록을 바이트 코드에 포함시키지 않습니다. –

3

Eclipse에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성 → 빌더를 선택하고 새로 만들기를 클릭합니다. 프로젝트를 빌드 할 때 Eclipse가 트리거하는 Ant 스크립트 또는 명령 행을 추가 할 수 있습니다. 동일한 대화 상자에서 빌더의 순서를 제어 할 수도 있습니다.

그러나 나는 JB Nizet –에 동의합니다. Ant 또는 Maven에 프로젝트를 빌드하는 데 많은 이점이 있습니다.

관련 문제