GWTP/Gin을 사용하면 컴파일 중에 선택적으로 모듈을 설치할 수 있습니까? 우리는 "개발"모드에서 실행될 때 응용 프로그램에서만 사용할 수있는 발표자와보기를 갖고 싶은 경우가 있습니다.이 모드는 .gwt.xml 파일 (빌드로 설정)의 플래그로 결정됩니다.선택적 모듈 설치
이전에, 우리는 MVC 아키텍처 GXT를 실행하고 우리의 모듈에서 다음을 수행합니다 :
<replace-with class="com.mypackage.DevEditController" >
<all>
<when-property-is name="isDevelopment" value="true" />
<when-type-is class="com.mypackage.EditController" />
</all>
</replace-with>
<replace-with class="com.mypackage.StubEditController" >
<all>
<when-property-is name="isDevelopment" value="false" />
<when-type-is class="com.mypackage.EditController" />
</all>
</replace-with>
을 그리고 다음과 같이 컨트롤러를 만들 것입니다 :
이(EditController)GWT.create(EditController.class);
내가 싶습니다 응용 프로그램의 비 개발 컴파일이이 발표자에 대해 알지 못하는 GWTP와 유사한 작업을 수행하십시오. DesktopModule 및 DevModule이 같은 일을 할 것이지만, DevDesktopModule 발표자를 포함하는 추가 모듈 (TestModule를)로드 할
<set-configuration-property name="gin.ginjector.modules"
value="com.mypackage.gin.SharedModule"/>
if this is development mode:
<set-configuration-property name="gin.ginjector.module.desktop"
value="com.mypackage.gin.DevDesktopModule"/>
else:
<set-configuration-property name="gin.ginjector.module.desktop"
value="com.mypackage.gin.DesktopModule"/>
/바인딩 전망 : 기본적으로, 우리의 모듈 파일이의 라인을 따라 뭔가를하고.
이 구성 요소는 구성 관점에서 볼 수 있습니까? 빌드 프로세스에 의해 두 개의 .gwt.xml 파일을 전환하여이 작업을 수행 할 수 있다고 생각했지만 설치 프로세스가 설치되어 있는지 여부에 관계없이 빌드 프로세스는 항상 TestModule 파일을 보았습니다. 이 모듈은 (우리가 그것을 설치하지 않을 경우이 빌드에서이다)
[ERROR] Error injecting com.blah.test.TestPresenter$MyView: Unable to create or inherit binding: No @Inject or default constructor found for com.blah.test.TestPresenter$MyView
Path to required node:
com.google.gwt.inject.client.AsyncProvider<com.blah.test.TestPresenter> [com.gwtplatform.mvp.client.ClientGinjector#getcomblahtestTestPresenter()]
-> com.blah.test.TestPresenter [Implicit injection of com.google.gwt.inject.client.AsyncProvider<com.blah.test.TestPresenter>]
-> com.blah.test.TestPresenter$MyView [@Inject constructor of com.blah.test.TestPresenter]
[ERROR] Errors in 'gen/com/gwtplatform/mvp/client/DesktopGinjectorProvider.java'
[ERROR] Line 8: Failed to resolve 'com.gwtplatform.mvp.client.DesktopGinjector' via deferred binding
[WARN] For the following type(s), generated source was never committed (did you forget to call commit()?)
[WARN] com.gwtplatform.mvp.client.com_gwtplatform_mvp_client_DesktopGinjectorImpl
나는이 문제에 어떤 통찰력을 주셔서 감사합니다, 또는 소스 트리에 존재하지만 설치되지 않을 때 우리가 얻을 오류 메시지입니다 응용 프로그램에 "조건부로 포함 된"모듈을 갖는 대안 솔루션.