# Prerequisites

Required software:

* Java 11 or higher
* Docker for [packaging](packaging.md) and publishing plugins  
  (or use a Docker alternative such as `podman`)
* Maven (recommended, build automation tool)

Required dependencies: 
* All required project dependencies to build extraction plugins are published on the public Maven Central, under `org.hansken.plugin.extraction:plugin-super-pom`.
  For maven based extraction plugins, the following `pom.xml` snippet can be used as basis of a plugin:
  ```xml
  <?xml version="1.0" encoding="UTF-8"?>
  <project xmlns="http://maven.apache.org/POM/4.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
  
      <parent>
          <groupId>org.hansken.plugin.extraction</groupId>
          <artifactId>plugin-super-pom</artifactId>
          <version>SET_THE_SDK_VERSION_HERE</version>
      </parent>
  
      <artifactId>CHOOSE_YOUR_ARTIFACTID_HERE</artifactId>
      <version>SET_THE_PLUGIN_VERSION_HERE</version>
  
      <licenses>
          <license>
              <name>The Apache Software License, Version 2.0</name>
              <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
              <distribution>repo</distribution>
          </license>
      </licenses>
  
      <properties>
          <mainClass>SET_THE_PLUGIN_MAIN_CLASS_HERE</mainClass>
      </properties>
  </project>
  ```
