This document describes how to migrate your IntelliJ-based App Engine project to Cloud Code.
Before you begin
If your project is Maven or Gradle based and uses the older App Engine SDK based plugins (e.g.
com.google.appengine:gradle-appengine-plugin), you should first migrate to the new Cloud SDK based Maven and Gradle plugins.
The new plugin does not support Datanucleus enhancement. If you depend on this feature, you will have to manually configure Datanucleus (JDO, JPA) enhancement for your project to migrate to Cloud Code. You should use Objectify as your ORM layer when reading/writing to Datastore.
Install the new plugin
If you haven't already, install the plugin by doing the following:
- Ensure you have the supported IDE version, JetBrains IDE version 2019.3+
(such as IntelliJ Ultimate/Community, PyCharm Professional/Community,
WebStorm, GoLand), on the
PATHof your machine.
- Open IntelliJ IDEA (or any supported JetBrains IDE).
- Open the plugins marketplace window using File > Settings > Plugins. For Mac OS X, use IntelliJ IDEA > Preferences > Plugins.
Search for the 'Cloud Code' plugin and install it.
You may be prompted to restart your IDE to activate the plugin.
Configure IntelliJ and your project
After installing the plugin, configure IntelliJ and your project to use the new plugin as follows:
When notified that the new plugin conflicts with the existing App Engine integration, click the link in the prompt.
In the following Disable Plugin prompt, select 'Disable and Restart' to disable the App Engine plugin and restart the IDE for the plugin configuration changes to take effect.
When notified that your project is in an old format, click the option to Convert your project to the new format.
You should delete your existing App Engine Server and Cloud instances and recreate them using the new Cloud SDK.
Navigate to Settings > Build, Execution, Deployment > Application Servers.
Select your App Engine Dev instances and click Delete (-).
Click Add (+) and select Google App Engine Dev Server.
Navigate to Settings > Build, Execution, Deployment > Clouds.
Select your Google App Engine cloud instances and click Delete (-).
Click Add (+) to configure an App Engine cloud deployment target.
If you have any App Engine local server run configurations, then you must update them to use the newly configured Application Server.
Navigate to Tools > Cloud Code > App Engine to see the list of actions available to you for running and deploying your application, or view the documentation for more information.
For Maven or Gradle-based projects, ensure that you are using the latest version of the Gradle and Maven App Engine plugins.
Configuring IntelliJ-specific projects
For IntelliJ-specific projects only (i.e., projects that have manually configured project settings with the old App Engine facet and are not synced from Gradle or Maven), update your App Engine dependencies.
Your App Engine dependencies are still configured as 'External Libraries' and provided by your old App Engine SDK installation. If you delete your App EngineSDK installation, your application will not compile.
To remove this dependency on the old App Engine SDK, configure your App Engine API dependencies using the App Engine Facet library import feature as follows:
Users of the old plugin's Datanucleus JDO/JPA enhancement feature need to port their applications to Maven or Gradle as Datanucleus enhancement is not supported by the Cloud Code plugin.
From the IntelliJ Project Structure UI, navigate to your App Engine Standard module's dependencies tab.
Remove all App Engine related libraries.
In the same Project Structure UI, navigate to your App Engine module's Google App Engine facet.
In the Libraries panel, select the App Engine dependencies you are using.
This action will automatically retrieve these dependencies from Maven Central and add them to your module classpath.
Run locally and deploy to verify your new configuration is working.
At this point, you can safely delete your old App Engine SDK.