Skip to content
This repository has been archived by the owner on Nov 14, 2022. It is now read-only.

GoogleCloudPlatform/endpoints-framework-maven-plugin

Repository files navigation

project status image Maven Central

Endpoints Framework Maven plugin

This Maven plugin provides goals and configurations to build Endpoints Framework projects.

Requirements

Maven is required to build the plugin. To download Maven, follow the instructions.

The remaining dependencies are specified in the pom.xml file and should be automatically downloaded when the plugin is built.

How to use

In your Maven App Engine Java app, add the following plugin to your pom.xml:

<plugin>
  <groupId>com.google.cloud.tools</groupId>
  <artifactId>endpoints-framework-maven-plugin</artifactId>
  <version>1.0.2</version>
</plugin>

All goals are prefixed with endpoints-framework

Server

The plugin exposes the following server side goals

  • clientLibs - generate client libraries
  • discoveryDocs - generate discovery docs
  • openApiDocs - generate Open API docs

The plugin exposes the following parameters for configuring server side goals

  • discoveryDocDir - The output directory of discovery documents
  • clientLibDir - The output directory of client libraries
  • openApiDocDir - The output directory of Open API documents
  • serviceClasses - List of service classes (optional), this can be inferred from web.xml
  • webappDir - Location of webapp directory
  • hostname - To set the hostname of the root url for Open API docs, discovery docs, and client libs (ex: hostname = myapp.appspot.com will result in a default root url of https://myapp.appspot.com/_ah/api)
  • basePath - To set the base path of the root url for Open API docs, discovery docs and client libs (ex: basePath = /_ah/api will result in a default root url of https://myapp.appspot.com/_ah/api)

Usage

Make sure your web.xml is configured to expose your endpoints correctly.

No configuration parameters are required to run with default values

mvn compile endpoints-framework:clientLibs
mvn compile endpoints-framework:discoveryDocs

Client

The plugin exposes the following client side goals

  • generateSrc

The plugin exposes the following parameters for client side goals

  • generatedSrcDir - The output directory of generated endpoints source
  • discoveryDocs - List of discovery docs to generate source from

Usage

Client consuming endpoints using the client plugin need to configure the location of source discovery documents and for best results configure the generateSrc task in the default generate sources phase.

<plugin>
  <groupId>com.google.cloud.tools</groupId>
  <artifactId>endpoints-framework-maven-plugin</artifactId>
  ...
  <configuration>
    <discoveryDocs>
      <discoveryDoc>src/endpoints/myApi-v1-rest.discovery</discoveryDoc>
    </discoveryDocs>
  </configuration>

  <executions>
    <execution>
      <phase>generate-sources</phase>
      <goals>
        <goal>generateSrc</goal>
      </goals>
    </execution>
  </executions>
</plugin>

Users will also need to include the google api client library for their generated source to compile

<dependency>
  <groupId>com.google.api-client</groupId>
  <artifactId>google-api-client</artifactId>
  <version>xx.yy.zz</version>
</dependency>

Running compile should automatically include generated sources from discovery documents

mvn compile