2012-06-12 4 views
0

GWT 컴파일러에서 무시되는 코드를 작성하는 방법을 찾고 있습니다. 예를 들어 특정 메소드는 GWT에서 사용할 수없는 클래스를 사용하므로 무시해야합니다.GWT 컴파일러에서 무시되는 코드를 작성할 수 있습니까?

일부 @Attribute 마법을 사용하여 이러한 메서드에 플래그를 지정하거나 컴파일하는 동안 코드를 제거 할 수 있습니까? 코드는 GWT 플랫폼에서 실행될 때 어쨌든 액세스되지 않지만이 코드가 실행될 때/JVM에서 테스트 될 때 매우 유용합니다.

나는 더미 클래스를 작성할 수 있다는 것을 알고있다. (실제로 나는 이미 그렇게하고있다.) 아직도 나는 쉬운 길을 찾고있다. 또한 GWT는 이미 System과 같은 클래스를 가지고 있지만 일부 기능 만 지원하기 때문에 일부 클래스에서는 dummys를 만들 수 없습니다.

감사합니다.

+0

귀하의 질문은 [여기] (답하고있다 http://stackoverflow.com/questions/6066431/strategies-for-mixing-in-the-gwt 호환 가능 및 호환 불가능 소스). GWT가 제공 한 그러한 속성은 없습니다. –

+0

GwT 2.6의이 해결책은 다음과 같습니다. [GwtIncompatible] (http://www.gwtproject.org/javadoc/latest/com/google/gwt/core/shared/GwtIncompatible.html). –

답변

1

나는 예를 들어, 같은 일부 수업을

private DateFormat dateFormat = new SimpleDateFormat("yy-MM-dd"); 

SimpleDateFormat의 클래스는 GWT 클래스하지 않고이 빨간색으로 밑줄과 내가 pointit 때, 그것은 말한다 : 클래스 'java.text.DateFormat의를' JRE 에뮬레이션 라이브러리에 없으므로 클라이언트 코드에서 사용할 수 없지만 문제없이 테스트를 실행할 수 있습니다. 여기 내 프로젝트 구조 및 내 프로젝트 테스트 클래스 중 하나의 그림입니다. 어쨌든 enter image description here

은 아무것도 당신은 GWT 에뮬레이션을 가지고 선언 된 패키지의 클래스를 확인합니다 같은 gwt.xml에 선언하지만, 그렇지 클래스에 대한 상관 없어 귀하의 테스트는 JVM 환경에서 실행 GWT 에뮬레이션이 있어야합니다. GWTTestcase를 사용하면 브라우저가 실행되고 환경 브라우저 아래에 테스트가 적용되므로 다른 점이 있습니다. 이 문제를 해결하려면 MVP 패턴 디자인을 사용하십시오. MVP1

MVP2 . 행운을 빌어 요.

2

메서드 수준이 아님. 당신은 비록 소스 패키지의 특정 클래스를 필터링 할 수 있습니다 :

<source path="client"> 
    <exclude name="XMLNamespaceContext.java"/> 
    <exclude name="XMLUtils.java"/> 
    <!-- exclude test classes, they always end with Test.java --> 
    <exclude name="**/*Test.java" /> 
</source> 
관련 문제