Versions Compared

Key

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

Table of Contents

Introduction

The js7 project repository holds the source code to build JS7 Controllers for building the JS7 Controller and JS7 AgentsAgent.

Prerequisites

The JS7 Controller and Agent are implemented with Scala and have to be built with sbt (Scala Build Tool). SOS uses sbt version 1.1.5 with sbt_script version 1.4.2.

Clone Repository

Navigate to your desired destination folder and clone the repository from GitHub:

Code Block
languagebash
git clone https://github.com/sos-berlin/js7

Checkout

Checkout Tagged Version

Code Block
languagebash
titleRetrieve list of available tagged versions
git fetch --all --tags
Code Block
languagebash
titleCheckout a desired version to a local branch
git checkout tags/[desired version] -b [desired local branch name]
e.g.
git checkout tags/v2.0.0 -b release/v2.0.0

Checkout Latest Tagged Version

Determine the latest tagged version and store it as a local variable.

Code Block
languagebash
titleRetrieve Latest Tagged Version
tag=$(git describe --tags `git rev-list --tags --max-count=1`)

Checkout the latest version to a local branch "latest" using the variable you have just stored.

Code Block
languagebash
titleCheckout Latest
git checkout $tag -b latest

Build

Navigate to the root of the cloned repository that you checked out.

Simple Compile

The project will be locally built. The resulting binaries will not be published in any repository.

Code Block
languagebash
./sbt-batch clean-all compile

Build With Tests

To build the project with all tests running use compile-all instead.

Code Block
languagebash
./sbt-batch clean-all compile-all

Build and Publish to a local M2 Repository

This is the recommended way to build JS7 as the resulting binaries are automatically published in a local /.m2 repository and are available for further builds (e.g. sos-components).

Code Block
languagebash
./sbt-batch clean-all compile publishM2


If an already checked out tag is being built again then it will throw the error: java.io.IOException: PUT operation failed because the destination file exists and overwriting is disabled. To solve this error it is necessary to clear/delete the local [USER_HOME]/.m2/repository/com/sos-berlin/js7 folder before the build.

Note: It is a scala project and has to be build with sbt.not necessary to clear/delete the folder if a new tag is checked out and build for the first time.

Build and Publish to a Binary Repository

The credentials required to deploy to a binary repository have to be available from a credentials file, see https://www.scala-sbt.org/1.x/docs/Publishing.html#Credentials for more information.

Set the repository credentials and repository URI for the build to an environment variable with the name SBT_OPTS.

Code Block
languagebash
export SBT_OPTS="-DpublishRepository.credentialsFile=/path/to/credentials/file -DpublishRepository.uri=uri/of/the/binary/repository";

Build the project.

Code Block
languagebash
./sbt-batch clean-all compile universal:publish