Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

First set up a Maven .settings profile with property values applicable to your environment.  The following example shows a 3.0 x nightly build of Power Edition with both the Messaging and Analytics optional modules purchased:

Code Block
...
<servers>
  <server>
    <id>NEXUS_ID</id>
    <username>MY_NEXUS_USERNAME</username>
    <password>MY_NEXUS_PASSWORD</password>
  </server>
</servers>


<profile>
  <id>smartgwt</id>
  <properties>
    <version>3.0<x</version>
    <edition>power</edition>
    <build>nightly</build>
    <messaging>true</messaging>
    <analytics>true</analytics>
    <isc.username>MY_ISOMORPHIC_ACCOUNT_USERNAME</isc.username>
    <isc.password>MY_ISOMORPHIC_ACCOUNT_PASSWORD</isc.password>
    <repo.id>NEXUS_ID</repo.id>
    <repo.url>MY_NEXUS_REPO_URL</repo.url>
  </properties>
</profile>

...

You can override these settings on the command line.  For example, this would download and deploy the 2.5 Power Edition release build instead of the 3.0 x nightly build as shown in the .settings file above, then deploy it to the central corporate repo (if you have one):

...

This would install the 2011-12-02 nightly of 3.0 x on my workstation (i.e., my local maven cache) for evaluation in my private workspace (e.g., when I want to check whether or not some bug has been resolved) before I deploy to my corporate repo:

Code Block
mvn clean install -Psmartgwt -Ddate=2011-12-02

Deploy the 3.0 x 2011-12-02 build to the central corporate Maven repo once it's been verified.  Since "clean" isn't specified as a goal, this won't download the package from SmartClient.com again since it was already installed locally:

Code Block
mvn deploy -Psmartgwt -Ddate=2011-12-02

Notes

The build figures out where to get your downloads based on version, edition, build, and date properties.  You could figure out which values to use by looking over the hyperlinks available from the Download page/s, but to help you along:

  1. The version property should take the form major.minor[.revision] for release builds (-Dbuild=release).  e.g., 2.5 | 2.5.1 | 3.0
  2. For nightly builds (-Dbuild=nightly), the version property should take the form of the appropriate Isomorphic codeline.  e.g., At release version 3.0, the current mainline is at 3.x.  The release line is at 3.0.x.  So
    1. So to have a look at progress being made toward a 3.1 release as of 12/19/2011, for example, use -Drelease=nightly -Dversion=3.x -Ddate=2011-12-19
    2. To have a look at progress being made toward a 3.0.1 patch release, use -Dversion=3.0.x -Drelease=nightly -Ddate=2011-12-19
  3. The date property is applicable to nightly builds only.

The POMs in the downloadable Maven configuration speak for themselves, but to point out a few things:

  1. The POMs at each project's root are used to mavenize the resources from the package downloaded from SmartClient.com.  Unless you're interested in how that works, the POM you care about is at src/main/resources.
  2. While it's not strictly necessary, the The build does assume the use of Maven 3.  You don't need Maven 3 to use the resulting artifact, just to build it.
  3. There currently isn't any good way to attach each artifact's javadoc independently, but the artifacts that have documentation in either the client or server bundles has the full bundle attached.
  4. The dependencies are based on the SmartGWT docs.  If any of the dependencies are wrong, or you have suggestions for improvements to the setup, please comment here or on thisforum post.

...