---
title: Developing your own plugin
description: You can set up a development environment within the SDK and use it to create a plugin.
component: pingfederate
version: 13.1
page_id: pingfederate:sdk_developers_guide:pf_develop_your_plugin
canonical_url: https://docs.pingidentity.com/pingfederate/13.1/sdk_developers_guide/pf_develop_your_plugin.html
llms_txt: https://docs.pingidentity.com/pingfederate/llms.txt
docs_for_agents: https://developer.pingidentity.com/build-with-ai/docs-for-agents.md
revdate: September 25, 2025
section_ids:
  before-you-begin: Before you begin
  about-this-task: About this task
  steps: Steps
  result: Result:
---

# Developing your own plugin

You can set up a development environment within the SDK and use it to create a plugin.

## Before you begin

Make sure the Java SDK and Apache Ant are installed.

|   |                                            |
| - | ------------------------------------------ |
|   | The PingFederate SDK only supports JDK 11. |

## About this task

The Java SDK, along with Apache Ant, enables you to create directories for your project and use the build script to build, clean, or deploy it.

## Steps

1. Create a new project directory in the `<pf_install>/pingfederate/sdk/plugin-src` directory.

2. In the new project directory, create a subdirectory named `java`.

   This is where you place the Java source code for your implementation. Follow standard Java package and directory structure layout.

3. If your project depends on third-party libraries, create another subdirectory called `lib` and place the necessary `.jar` files in it.

4. Edit the `build.local.properties` file and set `target-plugin.name` to specify the name of the directory that contains your project.

5. Run the appropriate build target to clean, build, or deploy your plugin.

6. (Optional) To display a list of available build targets, run `ant` from `<pf_install>/pingfederate/sdk`.

   |   |                                                                                                         |
   | - | ------------------------------------------------------------------------------------------------------- |
   |   | Typically, these build targets are executed in the order `clean-plugin`, `jar-plugin`, `deploy-plugin`. |

   ```
   [java] Main targets:
   [java]
   [java] clean-plugin Clean the plug-in build directory
   [java] deploy-plugin Deploy the plug-in jar and libs to PingFederate
   [java] jar-plugin    Package the plug-in jar
   [java]
   [java] Default target: help
   ```

   |   |                                                                                                                                                                                           |
   | - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   |   | Because it packages the `.jar` files with additional metadata to make them discoverable by PingFederate, we recommend building the project with the `build.xml` file included in the SDK. |

### Result:

After you successfully run the `deploy-plugin` build target, the plugin is available the next time you restart PingFederate.
