Thursday, November 5, 2020

Re: How to pass a build number to a gwt app?

Actually there is no reason.
Do you have a ready-made solution based on annotation processor?

четверг, 5 ноября 2020 г. в 17:11:25 UTC+4, m.conr...@gmail.com:
Any particular reason to not use an annotation processor? Especially as GWT.create is deprecated?

On Thu, Nov 5, 2020 at 2:36 AM Joker Joker <rov6...@gmail.com> wrote:
I want to share solution for gradle based project. 
This solution allows to get any build's properties on client/server.

1) Add to build.gradle
...
task createProperties(dependsOn: processResources) {
doLast {
 new File("$buildDir/resources/main/yourmodule/shared/IVersion.properties").withWriter { w ->
  Properties p = new Properties()
  p['version'] = project.version.toString()
  p.store w, null
 }
}
}

classes {
  dependsOn createProperties
}
...
2) Add IVersion.java:

package yourmodule.shared;
import com.google.gwt.i18n.client.Constants;
public interface IVersion extends Constants {
   String version();
}

3) Add to your code
...
public static final IVersion versionResource = GWT.create(IVersion.class);
...
4) Get version value on client side:
...
versionResource.version();
...
5) Get version on server side:
...
InputStream stream = this.getClass().getResourceAsStream("/yourmodule/shared/IVersion.properties");
InputStreamReader readerIs;
try {
  readerIs = new InputStreamReader(stream, "UTF-8");
  messageInstance = new PropertyResourceBundle(readerIs);
  messageInstance.getString("version"); 
} catch (Exception e) {
  e.printStackTrace();
}
...

вторник, 13 марта 2018 г. в 13:12:30 UTC+4, Bruno Salmon:
Thanks Thomas, I'm using GWT 2.8.2 so I tried your first suggestion and it works :-)

I just declared the property in my gwt.xml module file:

<define-configuration-property name="build.number" is_multi_valued="false"/>

 and set its value (with the maven property which is set by Jenkins) when calling your plugin in the configuation section: 

<configuration>
<compilerArgs>
<compilerArg>-setProperty</compilerArg>
<compilerArg>build.number=${build.number}</compilerArg>
</compilerArgs>
</configuration>

Then System.getProperty("build.number") returns the expected value :-)

Thank you

On Monday, 12 March 2018 23:27:17 UTC+1, Thomas Broyer wrote:
Easiest with recent GWT version would be to declare a <configuration-property>, get it using System.getProperty(), and set it with --property.

With older versions, use Maven filtering on a properties file you use with a com.google.gwt.i18n.client.Constants; or have a look at Mojo's Java template plugin.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-tool...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/aa760b0f-d641-4741-bb50-d58fb5585499n%40googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/8a8d1c4a-361b-4919-a41c-2e2730c8c0afn%40googlegroups.com.

No comments:

Post a Comment