After several hours of searching I've finally found how to use user defined file as a local storage. Unfortunately it doesn't work directly from Android Studio, servers must be run from the terminal.
Here are arguments for Java's dev-appserver:
Usage: <dev-appserver> [options] <app directory>
Options:
--help, -h Show this help message and exit.
--sdk_root=DIR Overrides where the SDK is located.
--server=SERVER The server to use to determine the latest
-s SERVER SDK version.
--address=ADDRESS The address of the interface on the local machine
-a ADDRESS to bind to (or 0.0.0.0 for all interfaces).
--port=PORT The port number to bind to on the local machine.
-p PORT
--disable_update_check Disable the check for newer SDK versions.
--generated_dir=DIR Set the directory where generated files are created.
--default_gcs_bucket=NAME Set the default Google Cloud Storage bucket name.
--jvm_flag=FLAG Pass FLAG as a JVM argument. May be repeated to
supply multiple flags.
You have to change generated_dir
argument. To run dev server directly from the terminal there's a very nice command:
/usr/lib/jvm/default-java/bin/java
-javaagent:$HOME/.gradle/appengine-sdk/appengine-java-sdk-1.9.9/lib/agent/appengine-agent.jar
-Xbootclasspath/p:$HOME/.gradle/appengine-sdk/appengine-java-sdk-1.9.9/lib/override/appengine-dev-jdk-overrides.jar
-Didea.launcher.port=7533 -Didea.launcher.bin.path=/opt/android-studio/bin -Dfile.encoding=UTF-8 -classpath $HOME/.gradle/appengine-sdk/appengine-java-sdk-1.9.9/lib/appengine-tools-api.jar:/opt/android-studio/lib/idea_rt.jar com.intellij.rt.execution.application.AppMain
com.google.appengine.tools.development.DevAppServerMain
--address=0.0.0.0 --port=8080 --generated_dir=$HOME/sandbox/ $HOME/app/backend/build/exploded-app
I've changed the generated_dir
argument to --generated_dir=$HOME/sandbox/
Please note you've to provide Android Studio path and App Engine SDK version. For my workstation it's /opt/android-studio
and appengine-java-sdk-1.9.9
accordingly.