Hi Team,

I'm facing an issue with GWT deferred binding while working with a modular Maven setup and would appreciate any guidance.

Error:

Failed to resolve AwbCustomerUiBinder via deferred binding

🧩 Project Setup

We have a multi-module Maven project:

  • phoenix-air → packaged as a JAR (contains GWT UI, UiBinder files)

  • phoenix-main → WAR (main application)

  • Parent project builds all modules

In application.gwt.xml, we are inheriting the air module:

<inherits name="com.shipco.phoenix.air.Air"/>

The dependency is also added in phoenix-main:

<dependency> <groupId>phoenix</groupId> <artifactId>phoenix-air</artifactId> <version>1.0</version> </dependency>

📄 Air Module Details

In phoenix-air:

  • AwbCustomer.java uses UiBinder:

interface AwbCustomerUiBinder extends UiBinder<Widget, AwbCustomer> {} private static AwbCustomerUiBinder uiBinder = GWT.create(AwbCustomerUiBinder.class);
  • Corresponding file exists:

AwbCustomer.ui.xml
  • Both are in the same package:

modules/awb/client/airimport/view/awbpopup/
  • air.gwt.xml includes:

<source path="modules/awb/client"/>
  • POM includes .ui.xml and .gwt.xml in resources

🧠 Additional Context
  • Other modules with similar setup seem to work (possibly not using UiBinder or structured differently)

  • Using GWT 2.12.x

  • Maven build with net.ltgt.gwt.maven:gwt-maven-plugin


Any insights or best practices for structuring GWT modules across Maven projects would be really helpful.

Thanks in advance!

Best regards,
Arpan Ameta