Versions Compared

Key

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

...

Code Block
mvn clean install -Dversion=2.55p -Dedition=eval -Dbuild=release -Disc.username=MY_USERNAME -Disc.password=MY_PASSWORD

...

Next, set up a Maven .settings profile with property values applicable to your environment.  The following example shows a nightly build toward the 3.1 release of 2 profiles, both for building 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>smartgwt-patches</id>
  <properties>
    <version>3.1<0p</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_RELEASE_URL</repo.url>
  </properties>
</profile>

<profile>
  <id>smartgwt-mainline</id>
  <properties>
    <version>3.1d</version>
    <edition>power</edition>
    <build>nightly</build>
    <snapshots>true</snapshots>    <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_REPOSNAPSHOTS_URL</repo.url>
  </properties>
</profile>


Eliminate the <messaging> and <analytics> elements if you didn't purchase those modules.  

...

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

Code Block
mvn clean deploy -Psmartgwt Psmartgwt-patches -Dversion=23.50 -Dbuild=release

This would install the 2011-12-02 nightly of 3.0 .1 patch released on December 2, 2011 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 Psmartgwt-patches -Dversion=3.0.1Ddate=2011-12-02

Do the same for the 3.1 snapshot build released on the same day.

Code Block

mvn install -Psmartgwt-mainline -Ddate=2011-12-02

Deploy the 3.01.1 2011-12-02 d20111202-SNAPSHOT build to the central corporate Maven repo once it's been verified.   Since  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-mainline -Dversion=3.0.1Ddate=2011-12-02

Deploy the same 3.1.d20111202 build, but don't mark it as a snapshot.  This allows you to treat a mainline build as a release build, if you need to.

Code Block

mvn deploy -Psmartgwt-patches -Ddate=2011-12-02

Notes

The build figures out where to get your downloads based on version, edition, build, and date properties.  The version numbering scheme you see on the Download page/s might be a bit unfamiliar to you, but mostly you should be able to use the following examples as your guide:

...

  1. If for example the current production release is 3.0 and you want the nightly build from the mainline (the 'bleeding edge' 3.1 feature release), use -Dbuild=nightly -Dversion=3.1 -Ddate=2011-12-02
  2. If what you want instead is a nightly build of the 3.0.1 patch release (bug fixes only), use -Dbuild=nightly, -Dversion=3.0.1, -Ddate=2011-12-02

...

 It's worth reviewing the Download Page narrative at least once, but for the impatient:

When no letter is specified (e.g. "3.0"), the build is a release build.

The letter "p" in a version (e.g. "3.0p") indicates a patch build, containing post-release fixes only, with no new features added. These builds are a convenience relative to having to install all post-release patches, and should generally be used instead of the actual releases.

The letter "d" in a version (e.g. "3.1d") indicates a development build, moving towards the release of the specified version (for example, 3.1d is progress towards a future 3.1 release).

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. The build does assume require 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.

...