This Gradle plugin provides tasks and configurations to build and connect Endpoints Framework projects.
Android Studio users see transition guide.
Gradle is required to build and run the plugin. The table below shows the compatibility with Gradle version.
Gradle version | endpoints-framework-gradle-plugin version |
---|---|
7.x - | 2.2.0 or higher (not yet released) |
4.x - 6.x | 2.1.0 or lower |
The plugin JAR needs to be defined in the classpath of your build script. Alternatively, you can download it from GitHub and deploy it to your local repository. The following code snippet shows an example on how to retrieve it from maven central :
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.google.cloud.tools:endpoints-framework-gradle-plugin:1.0.2'
}
}
In your Gradle App Engine Java app, add the following plugin to your build.gradle:
apply plugin: 'com.google.cloud.tools.endpoints-framework-server'
The plugin exposes the following server side goals
endpointsClientLibs
- generate client librariesendpointsDiscoveryDocs
- generate discovery documentsendpointsOpenApiDocs
- generate Open Api documents
The plugin exposes server side configuration through the endpointsServer
extension
serviceClasses
- List of service classes (optional), this can be inferred from web.xmlclientLibDir
- Output directory for generated client librarieshostname
- To set the root url for discovery docs and client libs (ex:hostname = myapp.appspot.com
will result in a default root url ofhttps://myapp.appspot.com/_ah/api
)
Make sure your web.xml is configured to expose your endpoints correctly.
No configuration paramters are required to run with default values
$> gradle endpointsClientLibs
Client libraries will be written to build/endpointsClientLibs
$> gradle endpointsDiscoveryDocs
Discovery documents will be written to build/endpointsDiscoveryDocs
In your client Java app, add the following plugin to your build.gradle:
// apply this plugin after you have applied other plugins
// because it uses the state of other plugins
apply plugin: 'com.google.cloud.tools.endpoints-framework-client'
The plugin exposes no tasks. Applying the plugin will generate sources according to your configuration
The plugin exposes client side configuration through the endpointsClient
extension
discoveryDocs
- List of discovery docs to generate source from
The plugin exposes intermodule endpoints configuration through a custom dependency
endpointsServer
- Configure generation of source from another module in the project
In your build.gradle define the location of the discovery document in the
endpointsClient
configuration closure.
endpointsClient {
discoveryDocs = ['src/endpoints/myApi-v1-rest.discovery']
}
building your project should inject the correct generated source into your compile path.
In your build.gradle define the correct project dependency, the server project must be
an endpoints-framework-server
module for this to work.
dependencies {
endpointsServer project(path: ":server", configuration: "endpoints")
}
building your project should inject the correct generated source into your compile path.
You can use a combination of discovery doc files and server dependencies when building a client module, make sure you include all the necessary dependencies for building your endpoints client
dependencies {
compile 'com.google.api-client:google-api-client:<version>' // for standard java projects
compile 'com.google.api-client:google-api-client-android:<version>' exclude module: 'httpclient' // for android projects
}
If you wish to build this plugin from source, please see the contributor instructions.