Select your preferred language (Java/Scala) above.
The Java tooling is published to Maven Central.
A Maven archetype; akkaserverless-maven-archetype provides the tooling to kickstart a Maven project. You supply details such as the desired artifact and group IDs, and the archetype provides a new Maven project directory with the Akka Serverless SDK and associated development support tooling set up.
The archetype can be used via the
- Linux or MacOS
mvn \ archetype:generate \ -DarchetypeGroupId=com.akkaserverless \ -DarchetypeArtifactId=akkaserverless-maven-archetype \ -DarchetypeVersion=0.9.0
mvn ^ archetype:generate ^ -DarchetypeGroupId=com.akkaserverless ^ -DarchetypeArtifactId=akkaserverless-maven-archetype ^ -DarchetypeVersion=0.9.0
The development support tooling is provided via a single Maven plugin; akkaserverless-maven-plugin. This plugin provides two Maven goals to support Protobuf driven interface-first development.
This plugin implements the following Maven Build Lifecycle goals:
generate; generates implementation stubs for your entity/service and corresponding tests, as well as an abstract class for your implementation to extend. If you make further updates to your Protobuf specification after the initial generation, existing implementation is left unchanged but the abstract class is updated to align. This allows you to leverage native developer tooling to guide the desired changes.
deploy; simply invokes the
akkaslscommand line tool to deploy the service to Akka Serverless. This relies on an existing installation of the CLI and uses configuration and credentials from that installation.
|The deploy goal requires the Akka Serverless CLI to be installed on your system.|
The behaviour of the plugin can be adjusted by adding a
<configuration> tag to the plugin definition in your POM with any of the following options:
akkaslsPathpath and name of the
akkaslscommmand line tool
akkaslsContextselects the context when calling
dockerImagethe Docker image name (use eg.
The development support tooling is provided via an sbt plugin; sbt-akkaserverless. This plugin provides commands to support Protobuf driven interface-first development.
The sbt plugin hooks into the standard
sbt commands for compiling, testing, and packaging. Code is automatically generated from Protobuf interfaces when using
test, and other commands that depend on these commands. The
sbt-native-packager plugin is included in the Giter8 template, which can be used for building and publishing Docker images, respectively using the
The behaviour of the plugin can be adjusted, by specifying system properties when starting sbt with a
-D flag, for the following options:
docker.usernamesets the username used to publish the image, for example
sbt -Ddocker.username=myuser docker:publish.
docker.registrysets the docker registry to publish to, which is only needed for a docker registry other than docker hub.