> For the complete documentation index, see [llms.txt](https://docs.xplatform.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.xplatform.com/get-started/set-up-your-dev-environment.md).

# Set Up your Dev Environment

This section describes what needs to be done to set up your environment to develop X applications.

You will need the following to build and run X applications

* A JDK
* Maven
* An IDE
* An X License

## Install JDK

Ensure you have one of the following JDKs installed on your machine.

* JDK 8
* JDK 11
* JDK 17

You can download and install the JDK from [here](https://www.oracle.com/java/technologies/downloads/)

## Install Maven

X Platform modules implemements several plugins for code generation and preparation of deployment artifacts that integrate into the build cycle. Currently, all these plugins are built for Maven. Therefore, Maven is the preferred tool to build X Platform applications.

You can download and install Maven from [here](https://maven.apache.org).

Free Maven installation tutorials can be found at:

* [Windows](https://www.youtube.com/watch?v=Jtj-0yhox5s\&t=72s\&ab_channel=EvilTester-SoftwareTesting)
* [OSX](https://www.youtube.com/watch?v=EoXImdzlAls\&ab_channel=AutomationStepbyStep-RaghavPal)

Please make sure you install Maven v3.0.4 or later.

{% hint style="info" %}
**Using Other Build Tools:** The functionality of each Maven plugin implemented by the X Platform is also available as a CLI tool implemented by the core X runtime. In fact, the plugins and the CLI tools are each implemented using a common underlying API implemented by the X runtime. These CLI tools are intended for use with build tools other than Maven such as Gradle and Ivy
{% endhint %}

### Set JAVA\_HOME

Set the following in your environment

```
JAVA_HOME=<Home directory of the JDK which you would like to use to build X applications>
```

This setting is used by Maven to determine the JDK to use to build your X project.

### Building Using Java 11 or Beyond <a href="#building-using-java11-and-beyond" id="building-using-java11-and-beyond"></a>

To run X code generation plugins and build the generated core, you would need to include the following additional dependencies in your Maven project. This is due to the removal of these packages from the JDK after JDK8

```
<dependencies>
    <dependency>
        <groupId>javax.annotation</groupId>
        <artifactId>javax.annotation-api</artifactId>
        <version>1.3.2</version>
    </dependency>

    <dependency>
        <groupId>jakarta.xml.bind</groupId>
        <artifactId>jakarta.xml.bind-api</artifactId>
        <version>2.3.3</version>
    </dependency>

    <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>2.3.8</version>
    </dependency>
</dependencies>
 
```

{% hint style="info" %}
**Versions:** The versions above are the versions against which the X Platform has been tested.
{% endhint %}

## Get an X License

An X Platform license is require to run Talon based microservices. Please contact Neeve Sales or Neeve Support to obtain a license. You will receive the following information in the license package.

* The license file
  * Save that license to your home directory
* Credentials to the Neeve artifact repository
  * Update your Maven settings.xml file with the supplied credentials as described in the license package.

See [Working with Licenses](/get-started/working-with-licenses.md) for information on working with licenses.

{% hint style="info" %}
**The Neeve Artifact Repository:** The Neeve repository is the main repository for X build artifacts. The repository is intended for use by build tools such as Maven, Ivy, and Gradle to download X artifacts and by you to manually download artifacts.
{% endhint %}

## Setup your IDE

X applications can be developed using any IDE that supports developing of Java applications.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.xplatform.com/get-started/set-up-your-dev-environment.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
