Endpoints Framework Gradle Plugin
This Gradle plugin provides tasks and configurations to build and connect Endpoints Framework projects.
Android Studio users see transition guide.
Requirements
Gradle is required to build and run the plugin.
How to use
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'
}
}
Server
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
)
Usage
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
Client
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
Usage (from discovery docs)
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.
Usage (from server module in project)
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
}
Contributing
If you wish to build this plugin from source, please see the contributor instructions.