A few things may be happening here. First, I think you are probably putting the set-property tag too early in your module file. Generally, when defining a module file, start with the inherits statements, making sure they are ordered correctly (the com.sencha.gwt.uibinder.UiBinder module should be after both the GWT modules and GXT itself), and you shouldn't need to list some of those modules (UserAgent, for example is included automatically in User). Then, customizing the properties defined and configured in those earlier modules, and changing the rebind rules with replace-with and generate-with, to ensure that your rules override GWT's and GXT's rules.

Next, GXT 3 has added the capability of compiling for more browers than GWT natively supports. The GXT module compresses these (using the collapse-property element) down to the basic 6 that GWT defines. Using both GXT's collapse-property elements and your set-property (with set-property being placed after the GXT module is inherited) apparently increases the number of builds, as GWT attempts to satisfy all of the conditions we have set. This is new to me, sorry to add this next level of complexity...

So the eventual fix is for you to constrain the browsers using our own set of user agents.

will cause a build that works on all supported versions of safari,chrome, air (the webkit browsers, user.agent=safari), and supported versions of firefox (user.agent=gecko1_8). Assuming you have the GXT module inherited, this will result in two permutations.

The last thing I want to point out is a question: What are you trying so solve in doing this? If you only plan on supporting a certain number of browsers, being as specific as possible will result in only code for those browser being included. If for example you only want the latest versions of safari and firefox (not chrome nor air), the line above could read

Code:

<set-property name="gxt.user.agent" value="safari5,gecko1_9"/>

If your goal is to reduce the number of permutations, there is another trick you can do, just squish all the js into one giant permutation:

Thanks for a such detailed answer, Colin. What I need is to restrict the number of browsers the code is generated for, just for the sake of time and simplicity. It takes too long time to compile the code. I will try you to implement suggestions, again thanks for helping!

If the goal is just speed of compilation, you can also tell the compiler to use draft mode - this will skip many optimizations, but speed up the compile. Used in conjunection with fewer browsers, less permutations (and more ram!) you'll get the fastest build possible.

Our application is not rendering in IE8 browser issue but works in IE9 and Chrome.

Our application is not rendering in IE8 browser issue but works in IE9 and Chrome.

Our application is built on GXT3 with https url, but it is rendering in all browsers except IE8. If I add the below line, it works in IE8, but limited to show only IE8. How to address the issue to show in IE8,9 and Chrome.

The set-property line explicitly instructs GWT to *only* compile for IE8, while the first says "Don't tell me if this won't work in a particular browser". This results in apps that just don't work, with no hint as to why.

Which browsers do you want to support? If you are supporting most of the browsers out there, don't set any user.agent or gxt.user.agent, and they'll all be supported automatically.